@[inline]
Equations
- DUnif.getDUnifDbgOn = do let opts ← Lean.getOptions pure (Lean.Option.get opts DUnif.dUnifDbgOn)
Instances For
Equations
- DUnif.instHashableUnifEq = { hash := DUnif.hashUnifEq✝ }
Equations
- DUnif.instBEqUnifEq = { beq := DUnif.beqUnifEq✝ }
Equations
- DUnif.instReprUnifEq = { reprPrec := DUnif.reprUnifEq✝ }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- DUnif.instToStringUnifEq = { toString := DUnif.UnifEq.toString }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- DUnif.instToMessageDataUnifEq = { toMessageData := DUnif.UnifEq.toMessageData }
Instances For
- FromExprPairs : Array (Lean.Expr × Lean.Expr) → ParentRule
- Succeed : ParentRule
- Delete : UnifEq → ParentRule
- OracleSucc : UnifEq → ParentRule
- OracleFail : UnifEq → ParentRule
- Decompose : UnifEq → ParentRule
- ForallToLambda : UnifEq → Nat → ParentRule
- OracleInst : UnifEq → ParentRule
- Iteration : UnifEq → Lean.Expr → (argn narg : Nat) → Lean.Expr → ParentRule
- JPProjection : UnifEq → Lean.Expr → (arg : Nat) → Lean.Expr → ParentRule
- HuetProjection : UnifEq → Lean.Expr → (arg : Nat) → Lean.Expr → ParentRule
- ImitForall : UnifEq → Lean.Expr → Lean.Expr → ParentRule
- ImitProj : UnifEq → Lean.Expr → (idx : Nat) → Lean.Expr → ParentRule
- Imitation : UnifEq → (flex rigid : Lean.Expr) → Lean.Expr → ParentRule
- Identification : UnifEq → (e1 e2 : Lean.Expr) → Lean.Expr → Lean.Expr → ParentRule
- Elimination : UnifEq → Lean.Expr → Array Nat → Lean.Expr → ParentRule
Instances For
Equations
Equations
Equations
- One or more equations did not get rendered due to their size.
- (DUnif.ParentRule.FromExprPairs arr).toString = toString "From " ++ toString arr ++ toString ""
- DUnif.ParentRule.Succeed.toString = "Succeed"
- (DUnif.ParentRule.Delete ue).toString = toString "Delete " ++ toString ue ++ toString ""
- (DUnif.ParentRule.OracleSucc ue).toString = toString "OracleSucc " ++ toString ue ++ toString ""
- (DUnif.ParentRule.OracleFail ue).toString = toString "OracleFail " ++ toString ue ++ toString ""
- (DUnif.ParentRule.Decompose ue).toString = toString "Decompose " ++ toString ue ++ toString ""
- (DUnif.ParentRule.ForallToLambda ue n).toString = toString "ForallToLambda " ++ toString ue ++ toString " for " ++ toString n ++ toString " binders"
- (DUnif.ParentRule.OracleInst ue).toString = toString "OracleInst " ++ toString ue ++ toString ""
- (DUnif.ParentRule.ImitForall ue F b).toString = toString "ImitForall of " ++ toString F ++ toString " in " ++ toString ue ++ toString " binding " ++ toString b ++ toString ""
Instances For
Equations
- DUnif.instToStringParentRule = { toString := DUnif.ParentRule.toString }
Equations
- One or more equations did not get rendered due to their size.
- (DUnif.ParentRule.FromExprPairs arr).toMessageData = (Lean.toMessageData "From ").compose (Duper.ArrayToMessageData arr Duper.ExprPairToMessageData)
- DUnif.ParentRule.Succeed.toMessageData = (Lean.MessageData.ofFormat ∘ Std.format) "Succeed"
- (DUnif.ParentRule.Delete ue).toMessageData = Lean.toMessageData "Delete " ++ Lean.toMessageData ue ++ Lean.toMessageData ""
- (DUnif.ParentRule.OracleSucc ue).toMessageData = Lean.toMessageData "OracleSucc " ++ Lean.toMessageData ue ++ Lean.toMessageData ""
- (DUnif.ParentRule.OracleFail ue).toMessageData = Lean.toMessageData "OracleFail " ++ Lean.toMessageData ue ++ Lean.toMessageData ""
- (DUnif.ParentRule.Decompose ue).toMessageData = Lean.toMessageData "Decompose " ++ Lean.toMessageData ue ++ Lean.toMessageData ""
- (DUnif.ParentRule.OracleInst ue).toMessageData = Lean.toMessageData "OracleInst " ++ Lean.toMessageData ue ++ Lean.toMessageData ""
Instances For
Equations
- DUnif.instToMessageDataParentRule = { toMessageData := DUnif.ParentRule.toMessageData }
- checked : Bool
- mctx : Lean.MetavarContext
- identVar : Std.HashSet Lean.Expr
- elimVar : Std.HashSet Lean.Expr
- parentRules : Lean.PersistentArray ParentRule
- parentClauses : Lean.PersistentArray Nat
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- DUnif.instToStringUnifProblem = { toString := DUnif.UnifProblem.toString }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- DUnif.instToMessageDataUnifProblem = { toMessageData := DUnif.UnifProblem.toMessageData }
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
DUnif.UnifProblem.appendUnchecked
(p : UnifProblem)
(es : Array UnifEq)
(is_prio : Bool := false)
:
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
@[inline]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[inline]
Equations
- p.pushParentRuleIfDbgOn pr = do let __do_lift ← DUnif.getDUnifDbgOn if __do_lift = true then pure (p.pushParentRule pr) else pure p
Instances For
@[inline]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[inline]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[inline]
Equations
- p.pushParentClauseIfDbgOn c = do let __do_lift ← DUnif.getDUnifDbgOn if __do_lift = true then pure (p.pushParentClause c) else pure p
Instances For
@[inline]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[inline]
Equations
- p.pushTrackedExprIfDbgOn tr = do let __do_lift ← DUnif.getDUnifDbgOn if __do_lift = true then pure (p.appendTrackedExpr tr) else pure p
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
- Const : Nat → Nat → Nat → StructType
- Proj : Nat → Nat → Nat → (innerTy outerTy : Lean.Expr) → (name : Lean.Name) → (idx : Nat) → StructType
- Bound : Nat → Nat → Nat → StructType
- MVar : Nat → Nat → Nat → StructType
- Other : Nat → Nat → Nat → StructType
Instances For
Equations
Equations
Equations
Equations
- DUnif.instReprStructType = { reprPrec := DUnif.reprStructType✝ }
Equations
- One or more equations did not get rendered due to their size.
Equations
- (DUnif.StructType.Const a a_1 a_2).getLambdaForall = (a, a_1)
- (DUnif.StructType.Proj a a_1 a_2 a_3 a_4 a_5 a_6).getLambdaForall = (a, a_1)
- (DUnif.StructType.Bound a a_1 a_2).getLambdaForall = (a, a_1)
- (DUnif.StructType.MVar a a_1 a_2).getLambdaForall = (a, a_1)
- (DUnif.StructType.Other a a_1 a_2).getLambdaForall = (a, a_1)
Instances For
Equations
- (DUnif.StructType.Const a a_1 a_2).getNArgs = a_2
- (DUnif.StructType.Proj a a_1 a_2 a_3 a_4 a_5 a_6).getNArgs = a_2
- (DUnif.StructType.Bound a a_1 a_2).getNArgs = a_2
- (DUnif.StructType.MVar a a_1 a_2).getNArgs = a_2
- (DUnif.StructType.Other a a_1 a_2).getNArgs = a_2
Instances For
Equations
- (DUnif.StructType.Const a a_1 a_2).isFlex = false
- (DUnif.StructType.Proj a a_1 a_2 a_3 a_4 a_5 a_6).isFlex = false
- (DUnif.StructType.Bound a a_1 a_2).isFlex = false
- (DUnif.StructType.MVar a a_1 a_2).isFlex = true
- (DUnif.StructType.Other a a_1 a_2).isFlex = false
Instances For
Equations
- (DUnif.StructType.Const a a_1 a_2).isRigid = true
- (DUnif.StructType.Proj a a_1 a_2 a_3 a_4 a_5 a_6).isRigid = true
- (DUnif.StructType.Bound a a_1 a_2).isRigid = true
- (DUnif.StructType.MVar a a_1 a_2).isRigid = false
- (DUnif.StructType.Other a a_1 a_2).isRigid = true
Instances For
Equations
- DUnif.projName! (Lean.Expr.proj n idx struct) = n
- DUnif.projName! x✝ = panicWithPosWithDecl "Duper.DUnif.UnifProblem" "DUnif.projName!" 361 18 "proj expression expected"
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
- NewArray : Array UnifProblem → UnifRuleResult
- NewLazyList : Duper.LazyList (Lean.MetaM (Array UnifProblem)) → UnifRuleResult
- Succeed : UnifRuleResult