Documentation

Duper.RuleM

Instances For
    Equations
    Instances For
      Instances For
        @[reducible, inline]

        Takes: Proofs of the parent clauses, ProofParent information, the transported Expressions (which will be turned into bvars in the clause) introduced by the rule, and the target clause

        Equations
        Instances For
          Instances For
            Equations
            Instances For
              Instances For
                Equations
                Instances For
                  @[inline]
                  def Duper.RuleM.RuleM.run {α : Type} (x : RuleM α) (ctx : Context) (s : State) :
                  Equations
                  Instances For
                    @[inline]
                    def Duper.RuleM.RuleM.run' {α : Type} (x : RuleM α) (ctx : Context) (s : State) :
                    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
                              Instances For
                                Equations
                                Instances For

                                  Runs x and only modifes the MCtx if the first argument returned by x is true (on failure, does not modify MCtx)

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

                                    Runs x and only modifies loadedClauses if the first argument returned by x is true (on failure, does not modify loadedClauses)

                                    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.RuleM.replace (e target replacement : Lean.Expr) :
                                        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

                                            Suppose c : Clause = ⟨bs, ls⟩, (mVars, m) ← loadClauseCore c then m = c.instantiateRev mVars m ≝ mkAppN c.toForallExpr mVars

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

                                                Does the same thing as loadClauseCore but adds c to inhabitationClauses rather than loadedClauses

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

                                                  Does the same thing as loadClause but adds c to inhabitationClauses rather than loadedClauses

                                                  Equations
                                                  Instances For

                                                    Returns the MClause that would be returned by calling loadClause c and the Clause × Array MVarId pair that would be added to loadedClauses if loadClause c were called, but does not actually change the set of loaded clauses. The purpose of this function is to process a clause and turn it into an MClause while delaying the decision of whether to actually load it

                                                    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.RuleM.yieldClause (mc : MClause) (ruleName : String) (mkProof : Option ProofReconstructor) (transferExprs : Array Lean.Expr := #[]) (mvarIdsToRemove : List Lean.MVarId := []) :
                                                          Equations
                                                          • One or more equations did not get rendered due to their size.
                                                          Instances For
                                                            def Duper.RuleM.compare (s t : Lean.Expr) (alreadyReduced : Bool) :
                                                            Equations
                                                            Instances For