Equations
Equations
- One or more equations did not get rendered due to their size.
Equations
Instances For
Instances For
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
- instanceMaxHeartbeats : Nat
- iter : Nat
- result : Result
- allClauses : Std.HashMap Clause ClauseInfo
- activeSet : ClauseSet
- unsupportedFacts : ClauseSet
- passiveSet : FairAgeClauseHeap
- qStreamSet : ClauseStreamHeap ClauseStream
- symbolPrecMap : SymbolPrecMap
- highesetPrecSymbolHasArityZero : Bool
- supMainPremiseIdx : RootCFPTrie
- fluidSupMainPremiseIdx : RootCFPTrie
- supSidePremiseIdx : RootCFPTrie
- demodMainPremiseIdx : RootCFPTrie
- demodSidePremiseIdx : RootCFPTrie
- subsumptionTrie : SubsumptionTrie
- skolemMap : Std.HashMap Nat RuleM.SkolemInfo
- skolemSorryName : Lean.Name
- verifiedInhabitedTypes : abstractedMVarList
- verifiedNonemptyTypes : abstractedMVarAndClauseList
- potentiallyUninhabitedTypes : abstractedMVarList
- potentiallyVacuousClauses : ClauseSet
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- Duper.ProverM.getInstanceMaxHeartbeats = do let __do_lift ← get pure __do_lift.instanceMaxHeartbeats
Instances For
Equations
- Duper.ProverM.getIter = do let __do_lift ← get pure __do_lift.iter
Instances For
Equations
- Duper.ProverM.getResult = do let __do_lift ← get pure __do_lift.result
Instances For
Equations
- Duper.ProverM.getAllClauses = do let __do_lift ← get pure __do_lift.allClauses
Instances For
Equations
- Duper.ProverM.getActiveSet = do let __do_lift ← get pure __do_lift.activeSet
Instances For
Equations
- Duper.ProverM.getUnsupportedFacts = do let __do_lift ← get pure __do_lift.unsupportedFacts
Instances For
Equations
- Duper.ProverM.getPassiveSet = do let __do_lift ← get pure __do_lift.passiveSet
Instances For
Equations
- Duper.ProverM.getSymbolPrecMap = do let __do_lift ← get pure __do_lift.symbolPrecMap
Instances For
Equations
- Duper.ProverM.getHighesetPrecSymbolHasArityZero = do let __do_lift ← get pure __do_lift.highesetPrecSymbolHasArityZero
Instances For
Equations
- Duper.ProverM.getSupMainPremiseIdx = do let __do_lift ← get pure __do_lift.supMainPremiseIdx
Instances For
Equations
- Duper.ProverM.getFluidSupMainPremiseIdx = do let __do_lift ← get pure __do_lift.fluidSupMainPremiseIdx
Instances For
Equations
- Duper.ProverM.getSupSidePremiseIdx = do let __do_lift ← get pure __do_lift.supSidePremiseIdx
Instances For
Equations
- Duper.ProverM.getDemodMainPremiseIdx = do let __do_lift ← get pure __do_lift.demodMainPremiseIdx
Instances For
Equations
- Duper.ProverM.getDemodSidePremiseIdx = do let __do_lift ← get pure __do_lift.demodSidePremiseIdx
Instances For
Equations
- Duper.ProverM.getSubsumptionTrie = do let __do_lift ← get pure __do_lift.subsumptionTrie
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Duper.ProverM.getQStreamSet = do let __do_lift ← get pure __do_lift.qStreamSet
Instances For
Equations
- Duper.ProverM.getSkolemSorryName = do let __do_lift ← get pure __do_lift.skolemSorryName
Instances For
Equations
- Duper.ProverM.getSkolemMap = do let __do_lift ← get pure __do_lift.skolemMap
Instances For
Equations
- Duper.ProverM.getVerifiedInhabitedTypes = do let __do_lift ← get pure __do_lift.verifiedInhabitedTypes
Instances For
Equations
- Duper.ProverM.getVerifiedNonemptyTypes = do let __do_lift ← get pure __do_lift.verifiedNonemptyTypes
Instances For
Equations
- Duper.ProverM.getPotentiallyUninhabitedTypes = do let __do_lift ← get pure __do_lift.potentiallyUninhabitedTypes
Instances For
Equations
- Duper.ProverM.getPotentiallyVacuousClauses = do let __do_lift ← get pure __do_lift.potentiallyVacuousClauses
Instances For
Equations
- Duper.ProverM.getEmptyClause = do let __do_lift ← get pure __do_lift.emptyClause
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
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
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
Equations
Instances For
Every clause is assigned a "distance" from the goal. This distance is the shortest number of inference rules to
obtain the clause from an assumption that was originally part of the negated goal. Goal assumptions themselves have
a goal distance of 0, and facts that are not at all connected to the goal (e.g. lemmas passed into duper or facts derived
from said lemmas) are assigned the distance maxGoalDistance
.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a clause c and a list of ancestors, markAsDescendantToGeneratingAncestors adds c to each generating ancestor's list of descendants
Equations
- One or more equations did not get rendered due to their size.
Instances For
Registers a new clause, but does not add it to active or passive set.
Typically, you'll want to use addNewToPassive
instead.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Registers a new clause and adds it to the unsupported facts set.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Registers a new clause and adds it to the passive set. The goalDistance
and generationNumber
arguments are used to by the clause
selection strategy's heuristics. The generatingAncestors
argument contains the list of clauses that were used to generate c
(or c
's
ancestor which generated c
by a modifying inference). See page 8 of "E – A Brainiac Theorem Prover"
Equations
- One or more equations did not get rendered due to their size.
Instances For
Takes a clause that was generated by preprocessing clausification and re-adds it to the passive set and its associated heaps
Equations
- One or more equations did not get rendered due to their size.
Instances For
Runs the ProverM α
function x
after adding every clause in es
to the passive set. es
is a list containing:
- The
Prop
to be reasoned about - The proof of the above Prop
- Any needed paramNames
- A bool which indicates whether the fact was part of the original goal (this impacts the clause selection strategy)
- A bool which indicates whether the fact should be part of the set of support (extra facts are not added to the set of support)
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
Adds c
to demodSidePremiseIdx and subsumptionTrie, which are the two indices that a potentiallyVacuous clause will not
be added to in addToActive.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Remove c from mainPremiseIdx, supSidePremiseIdx, demodSidePremiseIdx, and subsumptionTrie
Equations
- One or more equations did not get rendered due to their size.
Instances For
If ci is the ClauseInfo corresponding to a clause c, then removeDescendants removes the direct descendants of c from the passive set. Additionally, it tags each direct descendant of c as "isOrphan" in allClauses so they can potentially be readded to the passive set. However, removeDescendants does not remove or mark any clause that appears in protectedClauses.
Equations
- One or more equations did not get rendered due to their size.
Instances For
removeClause does the following:
- Removes c from the active set, passive set, unsupported facts set, potentiallyVacuousClauses set, and all discrimination trees
- Tags c as "wasSimplified" in allClauses
- Removes each direct descendant of c from the passive set
- Tags each direct descendant of c as "isOrphan" in allClauses
protectedClauses is an additional argument that needs to be provided if a clause is being eliminated by a backward simplification rule. The idea is that protectedClauses contains the list of pre-existing clauses that appear in the conclusion of the backward simplification rule that eliminated c, and these clauses should not be removed even if they happen to be descendants of c. With backward simplification rules, it is possible for a clause to remove its ancestor (without intending to remove itself), so the protectedClauses argument ensures that no clause inadvertently removes itself in the process of simplifying away a different clause.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Checks whether any clause in resultClauses subsumes givenClause (by clause subsumption). If there is a clause
c that subsumes givenClause, then some c
is returned. Otherwise, none
is returned.
Note: Currently, we only check for clause subsumption, and we only check clauses in resultClauses against the givenClause. But it may be good in the future to:
- Check whether any result clause can eliminate givenClause by equality subsumption (or some other simplification rule)
- Inter-simplify the clauses in resultClauses (this would change the return type but would be more faithful to how immediate simplification is described in http://www.cs.man.ac.uk/~korovink/my_pub/iprover_ijcar_app_2020.pdf. See table 1 to see which rules should be used for inter-simplification)
Equations
- One or more equations did not get rendered due to their size.