Documentation

Duper.MClause

structure Duper.MClause :
Instances For
    Equations
    Instances For
      Equations
      Instances For
        Equations
        Instances For
          Equations
          Instances For
            Equations
            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.MClause.mapM {m : TypeType w} [Monad m] (f : Lean.Exprm Lean.Expr) (c : MClause) :
                  Equations
                  Instances For
                    def Duper.MClause.fold {β : Type v} (f : βLean.Exprβ) (init : β) (c : MClause) :
                    β
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      def Duper.MClause.foldM {β : Type v} {m : Type v → Type w} [Monad m] (f : βLean.ExprClausePosm β) (init : β) (c : MClause) :
                      m β
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        def Duper.MClause.foldGreenM {m : TypeType u_1} {β : Type} [Monad m] [MonadLiftT Lean.MetaM m] (f : βLean.ExprClausePosm β) (init : β) (c : MClause) :
                        m β
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          Equations
                          Instances For
                            def Duper.MClause.replaceAtPos? {m : TypeType u_1} [Monad m] [MonadLiftT Lean.MetaM m] (c : MClause) (pos : ClausePos) (replacement : Lean.Expr) :
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              Equations
                              Instances For
                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For

                                  This function acts as Meta.kabstract except that it takes a ClausePos rather than Occurrences and expects the given expression to consist only of applications up to the given ExprPos. Additionally, since the exact position is given, we don't need to pass in Meta.kabstract's second argument p

                                  Equations
                                  Instances For
                                    Equations
                                    Instances For
                                      Equations
                                      Instances For
                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          def Duper.MClause.getMinimalLits (ord : Lean.ExprLean.ExprBoolLean.MetaM Comparison) (alreadyReduced : Bool) (c : MClause) (filter_fn : LitBool) :

                                          Returns the list of minimal literal indices that satisfy the provided filter_fn

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            def Duper.MClause.getMaximalLits (ord : Lean.ExprLean.ExprBoolLean.MetaM Comparison) (alreadyReduced : Bool) (c : MClause) (filter_fn : LitBool) :

                                            Returns the list of maximal literal indices that satisfy the provided filter_fn

                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              def Duper.MClause.getMaxDiffLits (getNetWeight : Lean.ExprLean.ExprBoolLean.MetaM Order.Weight) (alreadyReduced : Bool) (c : MClause) (filter_fn : LitNatBool) :

                                              Returns the list of literals (that satisfy the provided filter_fn) for which the size difference between the lhs and rhs is maximal. Note: For getMaxDiffLits, the filter_fn takes in both the lit and its index because filtering by index is more convenient for some selection functions.

                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For
                                                def Duper.MClause.isMaximalLit (ord : Lean.ExprLean.ExprBoolLean.MetaM Comparison) (alreadyReduced : Bool) (c : MClause) (idx : Nat) (strict : Bool := false) :

                                                Determines whether c.lits[idx]! is maximal in c. If strict is set to true, then there can be no idx' such that c.lits[idx]! and c.lits[idx']! are evaluated as equal by the comparison function

                                                Equations
                                                • One or more equations did not get rendered due to their size.
                                                Instances For
                                                  def Duper.MClause.canNeverBeMaximal (ord : Lean.ExprLean.ExprBoolLean.MetaM Comparison) (alreadyReduced : Bool) (c : MClause) (idx : Nat) :

                                                  Returns true if there may be some assignment in which the given idx is maximal, and false if there is some idx' that is strictly greater than idx (in this case, since idx < idx', for any subsitution σ, idx σ < idx' σ so idx can never be maximal)

                                                  Note that for this function, strictness does not actually matter, because regardless of whether we are considering potential strict maximality or potential nonstrict maximality, we can only determine that idx can never be maximal if we find an idx' that is strictly gerater than it

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