Documentation

Duper.Interface

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    def Duper.elabBoolLit {m : TypeType} [Monad m] [Lean.MonadError m] (stx : Lean.TSyntax `Duper.bool_lit) :
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def Duper.boolToBoolLit {m : TypeType} [Monad m] [Lean.MonadQuotation m] (b : Bool) :
      m (Lean.TSyntax `Duper.bool_lit)
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          Instances For
            def Duper.elabPreprocessingOption {m : TypeType} [Monad m] [Lean.MonadError m] (stx : Lean.TSyntax `Duper.preprocessing_option) :
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              def Duper.preprocessingOptionToStx {m : TypeType} [Monad m] [Lean.MonadQuotation m] (o : PreprocessingOption) :
              m (Lean.TSyntax `Duper.preprocessing_option)
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              Instances For

                                duper [facts] {options} is a terminal tactic that uses an automatic theorem prover to attempt to solve the current main goal.

                                The facts supplied to duper are separated by commas and can include:

                                • Hypotheses (of type Prop) from the local context
                                • External lemmas
                                • The symbol * to indicate that duper should consider all proofs in the current local context

                                Duper can also optionally receive a second list of facts (extra facts) that are to be added but not included in the set of support.

                                By default, duper will call multiple instances of itself with different option configurations in an attempt to find the option configuration that is best suited for the current problem. This behavior can be changed by including the option portfolioMode := false in the comma separated options list. Running duper with portfolioMode enabled means that each instance of duper will be given less time to run. To increase the amount of time allocated to duper, use set_option maxHeartbeats <num> (setting <num> to 3 times the default value will ensure that each duper instance is given as much time as it would receive if run with portfolioMode disabled).

                                The variant duper? will call duper and, if a proof is found, return a Try this suggestion that will call duper using just the option configuration that succeeded in finding a proof. If the suggestion is used, then on all subsequent compilations, only the version of duper that succeeded will be called.

                                Additional options that can be included in the options list include:

                                For a more complete referenceon duper (including fuller descriptions of the various options), see its README

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For

                                  duper [facts] {options} is a terminal tactic that uses an automatic theorem prover to attempt to solve the current main goal.

                                  The facts supplied to duper are separated by commas and can include:

                                  • Hypotheses (of type Prop) from the local context
                                  • External lemmas
                                  • The symbol * to indicate that duper should consider all proofs in the current local context

                                  Duper can also optionally receive a second list of facts (extra facts) that are to be added but not included in the set of support.

                                  By default, duper will call multiple instances of itself with different option configurations in an attempt to find the option configuration that is best suited for the current problem. This behavior can be changed by including the option portfolioMode := false in the comma separated options list. Running duper with portfolioMode enabled means that each instance of duper will be given less time to run. To increase the amount of time allocated to duper, use set_option maxHeartbeats <num> (setting <num> to 3 times the default value will ensure that each duper instance is given as much time as it would receive if run with portfolioMode disabled).

                                  The variant duper? will call duper and, if a proof is found, return a Try this suggestion that will call duper using just the option configuration that succeeded in finding a proof. If the suggestion is used, then on all subsequent compilations, only the version of duper that succeeded will be called.

                                  Additional options that can be included in the options list include:

                                  For a more complete referenceon duper (including fuller descriptions of the various options), see its README

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For

                                    If n is a Nat that corresponds to one of Duper's portfolio instances, then portfolioInstanceToConfigOptionStx n returns the syntax object corresponding to portfolioInstance := n. This is necessary so that duper? can produce its suggestion.

                                    Instances For

                                      If n is a Nat that corresponds to one of Duper's selection functions, then selFunctionNumToConfigOptionStx n returns the syntax object corresponding to selFunction := n. This is necessary so that duper? can produce its suggestion.

                                      Equations
                                      Instances For
                                        def Duper.mkDuperCallSuggestion (duperStxRef origSpan : Lean.Syntax) (facts : Lean.Syntax.TSepArray `term ",") (extraFacts : Option (Lean.Syntax.TSepArray `term ",")) (withDuperStar : Bool) (portfolioInstance : Nat) (inhabitationReasoning : Option Bool := none) (preprocessing : Option PreprocessingOption := none) (includeExpensiveRules : Option Bool := none) (selFunction : Option Nat := none) :

                                        Constructs and suggests the syntax for a duper call, for use with duper? If a portfolioInstance other than 0 is specified, then the returned tactic will only specify that instance (since it is all that is necessary). If the portfolioInstance specified is 0, then the returned tactic will use all of the optional arguments to construct the suggested syntax.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For

                                          We save the CoreM state. This is because we will add a constant skolemSorry to the environment to support skolem constants with universe levels. We want to erase this constant after the saturation procedure ends

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            axiom Duper.skSorryAx {α : Sort u} :
                                            α

                                            skSorryAx has essentially the same type as sorryAx, but does not trigger a sorry warning in Lean.addAndCompile. We want to deliberately bypass the warning in Lean.addAndCompile because the skolemSorry constant that Duper adds to the environment is only temporary and will be removed from the actual proof that should be checked by the kernel.

                                            Add the constant skolemSorry to the environment and add suitable postfix to avoid name conflict.

                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For
                                                Equations
                                                • One or more equations did not get rendered due to their size.
                                                Instances For
                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For
                                                    def Duper.runDuper (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool)) (instanceMaxHeartbeats : Nat) :

                                                    Entry point for calling a single instance of duper using the options determined by (← getOptions).

                                                    Formulas should consist of lemmas supplied by the user (to see how to obtain formulas from duper's input syntax, see collectAssumptions). InstanceMaxHeartbeats should indicate how many heartbeats duper should run for before timing out (if instanceMaxHeartbeats is set to 0, then duper will run until it is timed out by the Core maxHeartbeats option). If Duper succeeds in deriving a contradiction and constructing a proof for it, then runDuper returns that proof as an expression. Otherwise, Duper will throw an error.

                                                    Equations
                                                    • One or more equations did not get rendered due to their size.
                                                    Instances For

                                                      Converts formulas/lemmas from the format used by Duper to the format used by Auto. Duper uses Auto's deriv DTr to keep track of isFromGoal and optional syntax information through the monomorphization procedure.

                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      Instances For

                                                        Like formulasToAutoLemmas, but the stxOption is a string instead of a term.

                                                        Equations
                                                        • One or more equations did not get rendered due to their size.
                                                        Instances For

                                                          Determines whether lem's deriv info indicates that lem is part of the goal and should be included in the set of support. Note that derivInfo only works on lemmas generated from formulasToAutoLemmas or formulasWithStringsToAutoLemmas. In cases where the lemma was not generated from formulasToAutoLemmas, derivInfo defaults to indicating that both isFromGoal and includeInSetOfSupport are true.

                                                          Equations
                                                          • One or more equations did not get rendered due to their size.
                                                          Instances For

                                                            Converts formulas/lemmas from the format used by Auto to the format used by Duper.

                                                            Equations
                                                            • One or more equations did not get rendered due to their size.
                                                            Instances For

                                                              Given formulas, instanceMaxHeartbeats, and an instance of Duper inst, runs inst with monomorphization preprocessing.

                                                              Equations
                                                              • One or more equations did not get rendered due to their size.
                                                              Instances For

                                                                Given formulas, instanceMaxHeartbeats, and an instance of Duperinst, runs inst` with all of Auto's preprocessing (monomorphization, skolemization, definition unfolding, exhaustive function extensionality rewrites, and BitVec simplicfication).

                                                                Equations
                                                                • One or more equations did not get rendered due to their size.
                                                                Instances For
                                                                  def Duper.mkDuperInstance (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) (inhabitationReasoning : Option Bool) (preprocessing : Option PreprocessingOption) (includeExpensiveRules : Option Bool) (selFunction : Option Nat) :

                                                                  mkDuperInstance is called by each runDuperInstanceN function to construct the desired Duper instance. Additionally, if a user invokes portfolio instance 0 (which is the special instance reserved for allowing the user to manually construct an instance with their own configuration options), then this function will be called directly.

                                                                  Equations
                                                                  • One or more equations did not get rendered due to their size.
                                                                  Instances For
                                                                    def Duper.runDuperInstance1 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                    First instance called by portfolio mode. Has the following options:

                                                                    • preprocessing = full
                                                                    • inhabitationReasoning = false
                                                                    • selFunction = 4 (which corresponds to Zipperposition's default selection function)
                                                                    • includeExpensiveRules = false
                                                                    Equations
                                                                    • One or more equations did not get rendered due to their size.
                                                                    Instances For
                                                                      def Duper.runDuperInstance2 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                      Same as duper instance 1 except inhabitation reasoning is enabled. Has the following options:

                                                                      • preprocessing = full
                                                                      • inhabitationReasoning = true
                                                                      • selFunction = 4 (which corresponds to Zipperposition's default selection function)
                                                                      • includeExpensiveRules = false
                                                                      Equations
                                                                      • One or more equations did not get rendered due to their size.
                                                                      Instances For
                                                                        def Duper.runDuperInstance3 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                        Second instance called by portfolio mode. Has the following options:

                                                                        • preprocessing = full
                                                                        • inhabitationReasoning = false
                                                                        • selFunction = 11 (which corresponds to E's SelectMaxLComplexAvoidPosPred and Zipperposition's e_sel)
                                                                        • includeExpensiveRules = true
                                                                        Equations
                                                                        • One or more equations did not get rendered due to their size.
                                                                        Instances For
                                                                          def Duper.runDuperInstance4 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                          Same as duper instance 3 except inhabitation reasoning is enabled. Has the following options:

                                                                          • preprocessing = full
                                                                          • inhabitationReasoning = true
                                                                          • selFunction = 11 (which corresponds to E's SelectMaxLComplexAvoidPosPred and Zipperposition's e_sel)
                                                                          • includeExpensiveRules = true
                                                                          Equations
                                                                          • One or more equations did not get rendered due to their size.
                                                                          Instances For
                                                                            def Duper.runDuperInstance5 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                            Third instance called by portfolio mode. Has the following options:

                                                                            • preprocessing = full
                                                                            • inhabitationReasoning = false
                                                                            • selFunction = 13 (which corresponds to E's SelectComplexG and Zipperposition's e_sel3)
                                                                            • includeExpensiveRules = false
                                                                            Equations
                                                                            • One or more equations did not get rendered due to their size.
                                                                            Instances For
                                                                              def Duper.runDuperInstance6 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                              Same as duper instance 5 except inhabitation reasoning is enabled. Has the following options:

                                                                              • preprocessing = full
                                                                              • inhabitationReasoning = true
                                                                              • selFunction = 13 (which corresponds to E's SelectComplexG and Zipperposition's e_sel3)
                                                                              • includeExpensiveRules = false
                                                                              Equations
                                                                              • One or more equations did not get rendered due to their size.
                                                                              Instances For
                                                                                def Duper.runDuperInstance7 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                Fourth instance called by portfolio mode. Has the following options:

                                                                                • preprocessing = no_preprocessing
                                                                                • inhabitationReasoning = true
                                                                                • selFunction = 2 (NoSelection)
                                                                                • includeExpensiveRules = true
                                                                                Equations
                                                                                • One or more equations did not get rendered due to their size.
                                                                                Instances For
                                                                                  def Duper.runDuperInstance8 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                  Same as duper instance 7 except inhabitation reasoning is disabled. Has the following options:

                                                                                  • preprocessing = no_preprocessing
                                                                                  • inhabitationReasoning = false
                                                                                  • selFunction = 2 (NoSelection)
                                                                                  • includeExpensiveRules = true
                                                                                  Equations
                                                                                  • One or more equations did not get rendered due to their size.
                                                                                  Instances For
                                                                                    def Duper.runDuperInstance9 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                    Same as duper instance 1 except preprocessing is disabled. Has the following options:

                                                                                    • preprocessing = no_preprocessing
                                                                                    • inhabitationReasoning = false
                                                                                    • selFunction = 4 (which corresponds to Zipperposition's default selection function)
                                                                                    • includeExpensiveRules = false
                                                                                    Equations
                                                                                    • One or more equations did not get rendered due to their size.
                                                                                    Instances For
                                                                                      def Duper.runDuperInstance10 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                      Same as duper instance 2 except preprocessing is disabled. Has the following options:

                                                                                      • preprocessing = no_preprocessing
                                                                                      • inhabitationReasoning = true
                                                                                      • selFunction = 4 (which corresponds to Zipperposition's default selection function)
                                                                                      • includeExpensiveRules = false
                                                                                      Equations
                                                                                      • One or more equations did not get rendered due to their size.
                                                                                      Instances For
                                                                                        def Duper.runDuperInstance11 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                        Same as duper instance 3 except preprocessing is disabled. Has the following options:

                                                                                        • preprocessing = no_preprocessing
                                                                                        • inhabitationReasoning = false
                                                                                        • selFunction = 11 (which corresponds to E's SelectMaxLComplexAvoidPosPred and Zipperposition's e_sel)
                                                                                        • includeExpensiveRules = true
                                                                                        Equations
                                                                                        • One or more equations did not get rendered due to their size.
                                                                                        Instances For
                                                                                          def Duper.runDuperInstance12 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                          Same as duper instance 4 except preprocessing is disabled. Has the following options:

                                                                                          • preprocessing = no_preprocessing
                                                                                          • inhabitationReasoning = true
                                                                                          • selFunction = 11 (which corresponds to E's SelectMaxLComplexAvoidPosPred and Zipperposition's e_sel)
                                                                                          • includeExpensiveRules = true
                                                                                          Equations
                                                                                          • One or more equations did not get rendered due to their size.
                                                                                          Instances For
                                                                                            def Duper.runDuperInstance13 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                            Same as duper instance 5 except preprocessing is disabled. Has the following options:

                                                                                            • preprocessing = no_preprocessing
                                                                                            • inhabitationReasoning = false
                                                                                            • selFunction = 13 (which corresponds to E's SelectComplexG and Zipperposition's e_sel3)
                                                                                            • includeExpensiveRules = false
                                                                                            Equations
                                                                                            • One or more equations did not get rendered due to their size.
                                                                                            Instances For
                                                                                              def Duper.runDuperInstance14 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                              Same as duper instance 6 except preprocessing is disabled. Has the following options:

                                                                                              • preprocessing = no_preprocessing
                                                                                              • inhabitationReasoning = true
                                                                                              • selFunction = 13 (which corresponds to E's SelectComplexG and Zipperposition's e_sel3)
                                                                                              • includeExpensiveRules = false
                                                                                              Equations
                                                                                              • One or more equations did not get rendered due to their size.
                                                                                              Instances For
                                                                                                def Duper.runDuperInstance15 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                Same as duper instance 7 except preprocessing is enabled. Has the following options:

                                                                                                • preprocessing = full
                                                                                                • inhabitationReasoning = true
                                                                                                • selFunction = 2 (NoSelection)
                                                                                                • includeExpensiveRules = true
                                                                                                Equations
                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                Instances For
                                                                                                  def Duper.runDuperInstance16 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                  Same as duper instance 8 except preprocessing is enabled. Has the following options:

                                                                                                  • preprocessing = full
                                                                                                  • inhabitationReasoning = false
                                                                                                  • selFunction = 2 (NoSelection)
                                                                                                  • includeExpensiveRules = true
                                                                                                  Equations
                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                  Instances For
                                                                                                    def Duper.runDuperInstance17 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                    Same as duper instance 1 except preprocessing is set to monomorphization only. Has the following options:

                                                                                                    • preprocessing = monomorphization
                                                                                                    • inhabitationReasoning = false
                                                                                                    • selFunction = 4 (which corresponds to Zipperposition's default selection function)
                                                                                                    • includeExpensiveRules = false
                                                                                                    Equations
                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                    Instances For
                                                                                                      def Duper.runDuperInstance18 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                      Same as duper instance 2 except preprocessing is set to monomorphization only. Has the following options:

                                                                                                      • preprocessing = monomorphization
                                                                                                      • inhabitationReasoning = true
                                                                                                      • selFunction = 4 (which corresponds to Zipperposition's default selection function)
                                                                                                      • includeExpensiveRules = false
                                                                                                      Equations
                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                      Instances For
                                                                                                        def Duper.runDuperInstance19 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                        Same as duper instance 3 except preprocessing is set to monomorphization only. Has the following options:

                                                                                                        • preprocessing = monomorphization
                                                                                                        • inhabitationReasoning = false
                                                                                                        • selFunction = 11 (which corresponds to E's SelectMaxLComplexAvoidPosPred and Zipperposition's e_sel)
                                                                                                        • includeExpensiveRules = true
                                                                                                        Equations
                                                                                                        • One or more equations did not get rendered due to their size.
                                                                                                        Instances For
                                                                                                          def Duper.runDuperInstance20 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                          Same as duper instance 4 except preprocessing is set to monomorphization only. Has the following options:

                                                                                                          • preprocessing = monomorphization
                                                                                                          • inhabitationReasoning = true
                                                                                                          • selFunction = 11 (which corresponds to E's SelectMaxLComplexAvoidPosPred and Zipperposition's e_sel)
                                                                                                          • includeExpensiveRules = true
                                                                                                          Equations
                                                                                                          • One or more equations did not get rendered due to their size.
                                                                                                          Instances For
                                                                                                            def Duper.runDuperInstance21 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                            Same as duper instance 5 except preprocessing is set to monomorphization only. Has the following options:

                                                                                                            • preprocessing = no_preprocessing
                                                                                                            • inhabitationReasoning = false
                                                                                                            • selFunction = 13 (which corresponds to E's SelectComplexG and Zipperposition's e_sel3)
                                                                                                            • includeExpensiveRules = false
                                                                                                            Equations
                                                                                                            • One or more equations did not get rendered due to their size.
                                                                                                            Instances For
                                                                                                              def Duper.runDuperInstance22 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                              Same as duper instance 6 except preprocessing is set to monomorphization only. Has the following options:

                                                                                                              • preprocessing = monomorphization
                                                                                                              • inhabitationReasoning = true
                                                                                                              • selFunction = 13 (which corresponds to E's SelectComplexG and Zipperposition's e_sel3)
                                                                                                              • includeExpensiveRules = false
                                                                                                              Equations
                                                                                                              • One or more equations did not get rendered due to their size.
                                                                                                              Instances For
                                                                                                                def Duper.runDuperInstance23 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                Same as duper instance 7 except preprocessing is set to monomorphization only. Has the following options:

                                                                                                                • preprocessing = monomorphization
                                                                                                                • inhabitationReasoning = true
                                                                                                                • selFunction = 2 (NoSelection)
                                                                                                                • includeExpensiveRules = true
                                                                                                                Equations
                                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                                Instances For
                                                                                                                  def Duper.runDuperInstance24 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                  Same as duper instance 8 except preprocessing is set to monomorphization only. Has the following options:

                                                                                                                  • preprocessing = monomorphization
                                                                                                                  • inhabitationReasoning = false
                                                                                                                  • selFunction = 2 (NoSelection)
                                                                                                                  • includeExpensiveRules = true
                                                                                                                  Equations
                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                  Instances For
                                                                                                                    def Duper.runDuperInstance25 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                    Same as duper instance 1 except includeExpensiveRules is set to true. Has the following options:

                                                                                                                    • preprocessing = full
                                                                                                                    • inhabitationReasoning = false
                                                                                                                    • selFunction = 4 (which corresponds to Zipperposition's default selection function)
                                                                                                                    • includeExpensiveRules = true
                                                                                                                    Equations
                                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                                    Instances For
                                                                                                                      def Duper.runDuperInstance26 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                      Same as duper instance 2 except includeExpensiveRules is set to true. Has the following options:

                                                                                                                      • preprocessing = full
                                                                                                                      • inhabitationReasoning = true
                                                                                                                      • selFunction = 4 (which corresponds to Zipperposition's default selection function)
                                                                                                                      • includeExpensiveRules = true
                                                                                                                      Equations
                                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                                      Instances For
                                                                                                                        def Duper.runDuperInstance27 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                        Same as duper instance 3 except includeExpensiveRules is set to false. Has the following options:

                                                                                                                        • preprocessing = full
                                                                                                                        • inhabitationReasoning = false
                                                                                                                        • selFunction = 11 (which corresponds to E's SelectMaxLComplexAvoidPosPred and Zipperposition's e_sel)
                                                                                                                        • includeExpensiveRules = false
                                                                                                                        Equations
                                                                                                                        • One or more equations did not get rendered due to their size.
                                                                                                                        Instances For
                                                                                                                          def Duper.runDuperInstance28 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                          Same as duper instance 4 except includeExpensiveRules is set to false. Has the following options:

                                                                                                                          • preprocessing = full
                                                                                                                          • inhabitationReasoning = true
                                                                                                                          • selFunction = 11 (which corresponds to E's SelectMaxLComplexAvoidPosPred and Zipperposition's e_sel)
                                                                                                                          • includeExpensiveRules = false
                                                                                                                          Equations
                                                                                                                          • One or more equations did not get rendered due to their size.
                                                                                                                          Instances For
                                                                                                                            def Duper.runDuperInstance29 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                            Same as duper instance 5 except includeExpensiveRules is set to true. Has the following options:

                                                                                                                            • preprocessing = full
                                                                                                                            • inhabitationReasoning = false
                                                                                                                            • selFunction = 13 (which corresponds to E's SelectComplexG and Zipperposition's e_sel3)
                                                                                                                            • includeExpensiveRules = true
                                                                                                                            Equations
                                                                                                                            • One or more equations did not get rendered due to their size.
                                                                                                                            Instances For
                                                                                                                              def Duper.runDuperInstance30 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                              Same as duper instance 6 except includeExpensiveRules is set to true. Has the following options:

                                                                                                                              • preprocessing = full
                                                                                                                              • inhabitationReasoning = true
                                                                                                                              • selFunction = 13 (which corresponds to E's SelectComplexG and Zipperposition's e_sel3)
                                                                                                                              • includeExpensiveRules = true
                                                                                                                              Equations
                                                                                                                              • One or more equations did not get rendered due to their size.
                                                                                                                              Instances For
                                                                                                                                def Duper.runDuperInstance31 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                                Same as duper instance 7 except includeExpensiveRules is set to false. Has the following options:

                                                                                                                                • preprocessing = no_preprocessing
                                                                                                                                • inhabitationReasoning = true
                                                                                                                                • selFunction = 2 (NoSelection)
                                                                                                                                • includeExpensiveRules = false
                                                                                                                                Equations
                                                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                                                Instances For
                                                                                                                                  def Duper.runDuperInstance32 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                                  Same as duper instance 8 except includeExpensiveRules is set to false. Has the following options:

                                                                                                                                  • preprocessing = no_preprocessing
                                                                                                                                  • inhabitationReasoning = false
                                                                                                                                  • selFunction = 2 (NoSelection)
                                                                                                                                  • includeExpensiveRules = false
                                                                                                                                  Equations
                                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                                  Instances For
                                                                                                                                    def Duper.runDuperInstance33 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                                    Same as duper instance 9 except includeExpensiveRules is set to true. Has the following options:

                                                                                                                                    • preprocessing = no_preprocessing
                                                                                                                                    • inhabitationReasoning = false
                                                                                                                                    • selFunction = 4 (which corresponds to Zipperposition's default selection function)
                                                                                                                                    • includeExpensiveRules = true
                                                                                                                                    Equations
                                                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                                                    Instances For
                                                                                                                                      def Duper.runDuperInstance34 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                                      Same as duper instance 10 except includeExpensiveRules is set to true. Has the following options:

                                                                                                                                      • preprocessing = no_preprocessing
                                                                                                                                      • inhabitationReasoning = true
                                                                                                                                      • selFunction = 4 (which corresponds to Zipperposition's default selection function)
                                                                                                                                      • includeExpensiveRules = true
                                                                                                                                      Equations
                                                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                                                      Instances For
                                                                                                                                        def Duper.runDuperInstance35 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                                        Same as duper instance 11 except includeExpensiveRules is set to false. Has the following options:

                                                                                                                                        • preprocessing = no_preprocessing
                                                                                                                                        • inhabitationReasoning = false
                                                                                                                                        • selFunction = 11 (which corresponds to E's SelectMaxLComplexAvoidPosPred and Zipperposition's e_sel)
                                                                                                                                        • includeExpensiveRules = false
                                                                                                                                        Equations
                                                                                                                                        • One or more equations did not get rendered due to their size.
                                                                                                                                        Instances For
                                                                                                                                          def Duper.runDuperInstance36 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                                          Same as duper instance 12 except includeExpensiveRules is set to false. Has the following options:

                                                                                                                                          • preprocessing = no_preprocessing
                                                                                                                                          • inhabitationReasoning = true
                                                                                                                                          • selFunction = 11 (which corresponds to E's SelectMaxLComplexAvoidPosPred and Zipperposition's e_sel)
                                                                                                                                          • includeExpensiveRules = false
                                                                                                                                          Equations
                                                                                                                                          • One or more equations did not get rendered due to their size.
                                                                                                                                          Instances For
                                                                                                                                            def Duper.runDuperInstance37 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                                            Same as duper instance 13 except includeExpensiveRules is set to true. Has the following options:

                                                                                                                                            • preprocessing = no_preprocessing
                                                                                                                                            • inhabitationReasoning = false
                                                                                                                                            • selFunction = 13 (which corresponds to E's SelectComplexG and Zipperposition's e_sel3)
                                                                                                                                            • includeExpensiveRules = true
                                                                                                                                            Equations
                                                                                                                                            • One or more equations did not get rendered due to their size.
                                                                                                                                            Instances For
                                                                                                                                              def Duper.runDuperInstance38 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                                              Same as duper instance 14 except includeExpensiveRules is set to true. Has the following options:

                                                                                                                                              • preprocessing = no_preprocessing
                                                                                                                                              • inhabitationReasoning = true
                                                                                                                                              • selFunction = 13 (which corresponds to E's SelectComplexG and Zipperposition's e_sel3)
                                                                                                                                              • includeExpensiveRules = true
                                                                                                                                              Equations
                                                                                                                                              • One or more equations did not get rendered due to their size.
                                                                                                                                              Instances For
                                                                                                                                                def Duper.runDuperInstance39 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                                                Same as duper instance 15 except includeExpensiveRules is set to false. Has the following options:

                                                                                                                                                • preprocessing = full
                                                                                                                                                • inhabitationReasoning = true
                                                                                                                                                • selFunction = 2 (NoSelection)
                                                                                                                                                • includeExpensiveRules = false
                                                                                                                                                Equations
                                                                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                                                                Instances For
                                                                                                                                                  def Duper.runDuperInstance40 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                                                  Same as duper instance 16 except includeExpensiveRules is set to false. Has the following options:

                                                                                                                                                  • preprocessing = full
                                                                                                                                                  • inhabitationReasoning = false
                                                                                                                                                  • selFunction = 2 (NoSelection)
                                                                                                                                                  • includeExpensiveRules = false
                                                                                                                                                  Equations
                                                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                                                  Instances For
                                                                                                                                                    def Duper.runDuperInstance41 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                                                    Same as duper instance 17 except includeExpensiveRules is set to true. Has the following options:

                                                                                                                                                    • preprocessing = monomorphization
                                                                                                                                                    • inhabitationReasoning = false
                                                                                                                                                    • selFunction = 4 (which corresponds to Zipperposition's default selection function)
                                                                                                                                                    • includeExpensiveRules = true
                                                                                                                                                    Equations
                                                                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                                                                    Instances For
                                                                                                                                                      def Duper.runDuperInstance42 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                                                      Same as duper instance 18 except includeExpensiveRules is set to true. Has the following options:

                                                                                                                                                      • preprocessing = monomorphization
                                                                                                                                                      • inhabitationReasoning = true
                                                                                                                                                      • selFunction = 4 (which corresponds to Zipperposition's default selection function)
                                                                                                                                                      • includeExpensiveRules = true
                                                                                                                                                      Equations
                                                                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                                                                      Instances For
                                                                                                                                                        def Duper.runDuperInstance43 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                                                        Same as duper instance 19 except includeExpensiveRules is set to false. Has the following options:

                                                                                                                                                        • preprocessing = monomorphization
                                                                                                                                                        • inhabitationReasoning = false
                                                                                                                                                        • selFunction = 11 (which corresponds to E's SelectMaxLComplexAvoidPosPred and Zipperposition's e_sel)
                                                                                                                                                        • includeExpensiveRules = false
                                                                                                                                                        Equations
                                                                                                                                                        • One or more equations did not get rendered due to their size.
                                                                                                                                                        Instances For
                                                                                                                                                          def Duper.runDuperInstance44 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                                                          Same as duper instance 20 except includeExpensiveRules is set to false. Has the following options:

                                                                                                                                                          • preprocessing = monomorphization
                                                                                                                                                          • inhabitationReasoning = true
                                                                                                                                                          • selFunction = 11 (which corresponds to E's SelectMaxLComplexAvoidPosPred and Zipperposition's e_sel)
                                                                                                                                                          • includeExpensiveRules = false
                                                                                                                                                          Equations
                                                                                                                                                          • One or more equations did not get rendered due to their size.
                                                                                                                                                          Instances For
                                                                                                                                                            def Duper.runDuperInstance45 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                                                            Same as duper instance 21 except includeExpensiveRules is set to true. Has the following options:

                                                                                                                                                            • preprocessing = no_preprocessing
                                                                                                                                                            • inhabitationReasoning = false
                                                                                                                                                            • selFunction = 13 (which corresponds to E's SelectComplexG and Zipperposition's e_sel3)
                                                                                                                                                            • includeExpensiveRules = true
                                                                                                                                                            Equations
                                                                                                                                                            • One or more equations did not get rendered due to their size.
                                                                                                                                                            Instances For
                                                                                                                                                              def Duper.runDuperInstance46 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                                                              Same as duper instance 22 except includeExpensiveRules is set to true. Has the following options:

                                                                                                                                                              • preprocessing = monomorphization
                                                                                                                                                              • inhabitationReasoning = true
                                                                                                                                                              • selFunction = 13 (which corresponds to E's SelectComplexG and Zipperposition's e_sel3)
                                                                                                                                                              • includeExpensiveRules = true
                                                                                                                                                              Equations
                                                                                                                                                              • One or more equations did not get rendered due to their size.
                                                                                                                                                              Instances For
                                                                                                                                                                def Duper.runDuperInstance47 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                                                                Same as duper instance 23 except includeExpensiveRules is set to false. Has the following options:

                                                                                                                                                                • preprocessing = monomorphization
                                                                                                                                                                • inhabitationReasoning = true
                                                                                                                                                                • selFunction = 2 (NoSelection)
                                                                                                                                                                • includeExpensiveRules = false
                                                                                                                                                                Equations
                                                                                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                                                                                Instances For
                                                                                                                                                                  def Duper.runDuperInstance48 (formulas extraFormulas : List (Lean.Expr × Lean.Expr × Array Lean.Name × Bool × Option Lean.Term)) (instanceMaxHeartbeats : Nat) :

                                                                                                                                                                  Same as duper instance 24 except includeExpensiveRules is set to false. Has the following options:

                                                                                                                                                                  • preprocessing = monomorphization
                                                                                                                                                                  • inhabitationReasoning = false
                                                                                                                                                                  • selFunction = 2 (NoSelection)
                                                                                                                                                                  • includeExpensiveRules = false
                                                                                                                                                                  Equations
                                                                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                                                                  Instances For

                                                                                                                                                                    Returns true iff the given duper instance n has inhabitation reasoning enabled. Returns false iff the given duper instance n has inhabitation reasoning disabled. Throws an error if given an invalid duper instance.

                                                                                                                                                                    Instances For

                                                                                                                                                                      If the given duper instance n has inhabitation reasoning disabled and there is another instance m that is identical except that it has inhabitation reasoning enabled, then getInstanceWithInhabitationReasoning returns some m. Otherwise, getInstanceWithInhabitationReasoning returns none.

                                                                                                                                                                      Equations
                                                                                                                                                                      Instances For

                                                                                                                                                                        If the given duper instance n has inhabitation reasoning enabled and there is another instance m that is identical except that it has inhabitation reasoning disabled, then getInstanceWithoutInhabitationReasoning returns some m. Otherwise, getInstanceWithoutInhabitationReasoning returns none.

                                                                                                                                                                        Equations
                                                                                                                                                                        Instances For

                                                                                                                                                                          If the given duper instance n has includeExpensiveRules set to false and there is another instance m that is identical except that it has includeExpensiveRules set to true, then getInstanceWithExpensiveRules returns some m. Otherwise, getInstanceWithExpensiveRules returns none.

                                                                                                                                                                          Equations
                                                                                                                                                                          Instances For

                                                                                                                                                                            If the given duper instance n has includeExpensiveRules set to true and there is another instance m that is identical except that it has includeExpensiveRules set to false, then getInstanceWithoutExpensiveRules returns some m. Otherwise, getInstanceWithoutExpensiveRules returns none.

                                                                                                                                                                            Equations
                                                                                                                                                                            Instances For

                                                                                                                                                                              Implements duper calls when portfolio mode is enabled. If duperStxInfo is not none and runDuperPortfolioMode succeeds in deriving a contradiction, then Std.Tactic.TryThis.addSuggestion will be used to give the user a more specific invocation of duper that can reproduce the proof (without having to run duper in portfolio mode). As with the other runDuper functions, runDuperPortfolioMode ultimately returns a proof if successful and throws an error if unsuccessful.

                                                                                                                                                                              Equations
                                                                                                                                                                              • One or more equations did not get rendered due to their size.
                                                                                                                                                                              Instances For