Documentation

Duper.MClause

structure Duper.MClause :
Instances For
    Equations
    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