Documentation

Duper.Rules.EqualitySubsumption

def Duper.equalitySubsumptionWithPartner (mainPremise : MClause) (mainPremiseMVarIds : Array Lean.MVarId) (mainPremisePos : ClausePos) (sidePremise : MClause) :

Checks that (getAtPos mainPremise[pos.lit].lhs mainPremisePos.pos) can be matched with sidePremise[0].sidePremiseLhs and that (getAtPos mainPremise[pos.lit].rhs mainPremisePos.pos) can be matched with sidePremise[0].sidePremiseRhs. Importantly, this function does NOT check mainPremise[pos.lit].sign or that mainPremise[pos.lit].lhs and mainPremise[pos.lit].rhs agree outside of the given pos.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    def Duper.forwardEqualitySubsumptionAtExpr (mainPremise : MClause) (pos : ClausePos) (potentialSubsumingClauses : Array Clause) (mainMVarIds : Array Lean.MVarId) :
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      Returns Removed if there exists a clause that subsumes c, and returns Unapplicable otherwise

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

        Returns the list of clauses that givenSubsumingClause subsumes

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