Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
- Duper.RuleM.getInhabitationReasoningM = do let opts ← Lean.getOptions pure (Duper.RuleM.getInhabitationReasoning opts)
Instances For
Equations
Instances For
Equations
- Duper.RuleM.getSelFunctionM = do let opts ← Lean.getOptions pure (Duper.RuleM.getSelFunction opts)
Instances For
Equations
- Duper.RuleM.getIncludeExpensiveRulesM = do let opts ← Lean.getOptions pure (Duper.RuleM.getIncludeExpensiveRules opts)
Instances For
Equations
- Duper.RuleM.getIncludeDatatypeRulesM = do let opts ← Lean.getOptions pure (Duper.RuleM.getIncludeDatatypeRules opts)
Instances For
Equations
- Duper.RuleM.getIncludeUnsafeAcyclicityM = do let opts ← Lean.getOptions pure (Duper.RuleM.getIncludeUnsafeAcyclicity opts)
Instances For
- order : Lean.Expr → Lean.Expr → Bool → Lean.MetaM Comparison
- symbolPrecMap : SymbolPrecMap
- getNetWeight : Lean.Expr → Lean.Expr → Bool → Lean.MetaM Order.Weight
- skolemSorryName : Lean.Name
Instances For
- expr : Lean.Expr
- clause : Clause
- paramSubst : Array Lean.Level
Instances For
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
- parents : Array ProofParent
- ruleName : String
- mkProof : ProofReconstructor
Instances For
- clause : Clause
- lmVarIds : Array Lean.LMVarId
- mVarIds : Array Lean.MVarId
Instances For
- loadedClauses : Array LoadedClause
- inhabitationClauses : Array LoadedClause
- skolemMap : Std.HashMap Nat SkolemInfo
Instances For
Equations
Instances For
- simplifiedGivenClause : Clause
- postUnification : RuleM.RuleM (Option (Clause × RuleM.Proof))
- ruleName : String
Instances For
Equations
- Duper.RuleM.getOrder = do let __do_lift ← read pure __do_lift.order
Instances For
Equations
- Duper.RuleM.getSymbolPrecMap = do let __do_lift ← read pure __do_lift.symbolPrecMap
Instances For
Equations
- Duper.RuleM.getGetNetWeight = do let __do_lift ← read pure __do_lift.getNetWeight
Instances For
Equations
- Duper.RuleM.getSkolemSorryName = do let __do_lift ← read pure __do_lift.skolemSorryName
Instances For
Equations
- Duper.RuleM.getLoadedClauses = do let __do_lift ← get pure __do_lift.loadedClauses
Instances For
Equations
- Duper.RuleM.getInhabitationClauses = do let __do_lift ← get pure __do_lift.inhabitationClauses
Instances For
Equations
- Duper.RuleM.getSkolemMap = do let __do_lift ← get pure __do_lift.skolemMap
Instances For
Equations
- Duper.RuleM.setLoadedClauses loadedClauses = modify fun (s : Duper.RuleM.State) => { loadedClauses := loadedClauses, inhabitationClauses := s.inhabitationClauses, skolemMap := s.skolemMap }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Duper.RuleM.setState s = modify fun (x : Duper.RuleM.State) => s
Instances For
Equations
- Duper.RuleM.setSkolemMap skmap = modify fun (s : Duper.RuleM.State) => { loadedClauses := s.loadedClauses, inhabitationClauses := s.inhabitationClauses, skolemMap := skmap }
Instances For
Equations
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
- Duper.RuleM.instAddMessageContextRuleM = { addMessageContext := Lean.addMessageContextFull }
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
- Duper.RuleM.unWrapSort e = Lean.Meta.forallTelescope e fun (xs : Array Lean.Expr) (x : Lean.Expr) => do let tys ← Array.mapM Lean.Meta.inferType xs pure (Array.map Lean.Expr.sortLevel! tys)
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
- Duper.RuleM.loadClause c = do let __discr ← Duper.RuleM.loadClauseCore c match __discr with | (fst, mclause) => pure mclause
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
- Duper.RuleM.loadInhabitationClause c = do let __discr ← Duper.RuleM.loadInhabitationClauseCore c match __discr with | (fst, mclause) => pure mclause
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
Equations
- Duper.RuleM.compare s t alreadyReduced = do let ord ← Duper.RuleM.getOrder liftM (ord s t alreadyReduced)