Equations
Equations
Equations
Equations
- Auto.Embedding.Lam.instToExprREntry = { toExpr := Auto.Embedding.Lam.toExprREntry✝, toTypeExpr := Lean.Expr.const `Auto.Embedding.Lam.REntry [] }
Equations
- One or more equations did not get rendered due to their size.
- (Auto.Embedding.Lam.REntry.valid a a_1).repr = toString "Auto.Embedding.Lam.REntry.valid " ++ toString (reprPrec a 1) ++ toString " " ++ toString (reprPrec a_1 1) ++ toString ""
- (Auto.Embedding.Lam.REntry.nonempty a).repr = toString "Audo.Embedding.Lam.REntry.nonempty " ++ toString (reprPrec a 1) ++ toString ""
Instances For
Equations
- Auto.Embedding.Lam.instReprREntry = { reprPrec := fun (re : Auto.Embedding.Lam.REntry) (x : Nat) => Std.Format.text re.repr }
Equations
- (Auto.Embedding.Lam.REntry.wf a a_1 a_2).toString = toString "wf " ++ toString a ++ toString " " ++ toString a_1 ++ toString " " ++ toString a_2 ++ toString ""
- (Auto.Embedding.Lam.REntry.valid a a_1).toString = toString "valid " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.REntry.nonempty a).toString = toString "nonempty " ++ toString a ++ toString ""
Instances For
Equations
Equations
- (Auto.Embedding.Lam.REntry.wf a a_1 a_2).beq (Auto.Embedding.Lam.REntry.wf b b_1 b_2) = (a == b && a_1 == b_1 && a_2 == b_2)
- (Auto.Embedding.Lam.REntry.valid a a_1).beq (Auto.Embedding.Lam.REntry.valid b b_1) = (a == b && a_1 == b_1)
- (Auto.Embedding.Lam.REntry.nonempty a).beq (Auto.Embedding.Lam.REntry.nonempty b) = (a == b)
- x✝¹.beq x✝ = false
Instances For
Equations
Equations
- (Auto.Embedding.Lam.REntry.wf a a_1 a_2).containsSort s = ((a.any fun (s' : Auto.Embedding.Lam.LamSort) => s'.contains s) || a_1.contains s || a_2.containsSort s)
- (Auto.Embedding.Lam.REntry.valid a a_1).containsSort s = ((a.any fun (s' : Auto.Embedding.Lam.LamSort) => s'.contains s) || a_1.containsSort s)
- (Auto.Embedding.Lam.REntry.nonempty a).containsSort s = a.contains s
Instances For
Equations
- (Auto.Embedding.Lam.REntry.wf a a_1 a_2).allLamTerms = [a_2]
- (Auto.Embedding.Lam.REntry.valid a a_1).allLamTerms = [a_1]
- (Auto.Embedding.Lam.REntry.nonempty a).allLamTerms = []
Instances For
Table of valid propositions and well-formed formulas
Note that Auto.BinTree α
is equivalent to Nat → Option α
,
which means that .some
entries may be interspersed
with .none
entries
- maxEVarSucc : Nat
Instances For
Equations
Equations
Instances For
Checker Valuation
- var : BinTree ((s : LamSort) × LamSort.interp self.tyVal s)
- eVarVal (n : Nat) : LamSort.interp self.tyVal ((lamEVarTy.get? n).getD (LamSort.base LamBaseSort.prop))
Instances For
Used in checker metacode to construct var
Equations
Instances For
Used in checker metacode to construct il
Equations
- Auto.Embedding.Lam.ilβ tyVal s = Auto.Embedding.Lam.ILLift (Auto.Embedding.Lam.LamSort.interp tyVal s)
Instances For
Equations
- Auto.Embedding.Lam.ilVal.default lamILTy tyVal n = Auto.Embedding.Lam.ILLift.default (Auto.Embedding.Lam.LamSort.interp tyVal (lamILTy n))
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- cpv.toLamVarTy n = ((cpv.var.get? n).getD ⟨Auto.Embedding.Lam.LamSort.base Auto.Embedding.Lam.LamBaseSort.prop, { down := False }⟩).fst
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
- Auto.Embedding.Lam.REntry.correct cv maxEVarSucc (Auto.Embedding.Lam.REntry.wf a a_1 a_2) = (Auto.Embedding.Lam.LamThmWFP cv.toLamValuation a a_1 a_2 ∧ a_2.maxEVarSucc ≤ maxEVarSucc)
- Auto.Embedding.Lam.REntry.correct cv maxEVarSucc (Auto.Embedding.Lam.REntry.valid a a_1) = (Auto.Embedding.Lam.LamThmValid cv.toLamValuation a a_1 ∧ a_1.maxEVarSucc ≤ maxEVarSucc)
- Auto.Embedding.Lam.REntry.correct cv maxEVarSucc (Auto.Embedding.Lam.REntry.nonempty a) = Auto.Embedding.Lam.LamNonempty cv.tyVal a
Instances For
Invariant of RTable
Equations
- r.inv cv = Auto.BinTree.allp (fun (re : Auto.Embedding.Lam.REntry) => Auto.Embedding.Lam.REntry.correct cv r.maxEVarSucc re) r.entries
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- r.getNonempty v = match r.get? v with | some (Auto.Embedding.Lam.REntry.nonempty s) => some s | x => none
Instances For
- valid : LamTerm → ImportEntry
- nonempty : LamSort → ImportEntry
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Auto.Embedding.Lam.ImportEntry.correct lval (Auto.Embedding.Lam.ImportEntry.nonempty s) = Nonempty (Auto.Embedding.Lam.LamSort.interp lval.tyVal s)
Instances For
The meta code of the checker will prepare this ImportTable
Equations
Instances For
Used by the meta code of the checker to build ImportTable
Equations
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
- validOfHeadBeta (pos : Nat) : ConvStep
- validOfBetaBounded (pos bound : Nat) : ConvStep
- validOfExtensionalize
(pos : Nat)
: ConvStep
Exhaustively rewrite using functional extensionality
- validOfEqSymm
(pos : Nat)
: ConvStep
Symmetry to top-level equality
- validOfMp (pos rw : Nat) : ConvStep
- validOfMpAll
(pos rw : Nat)
: ConvStep
Exhaustively rewrite using facts of form
valid [] (lhs = rhs)
- validOfCongrArg (pos rw : Nat) : ConvStep
- validOfCongrFun (pos rw : Nat) : ConvStep
- validOfCongr (pos rwFn rwArg : Nat) : ConvStep
- validOfCongrArgs (pos : Nat) (rws : List Nat) : ConvStep
- validOfCongrFunN (pos rwFn n : Nat) : ConvStep
- validOfCongrs (pos rwFn : Nat) (rwArgs : List Nat) : ConvStep
Instances For
Equations
Equations
- Auto.Embedding.Lam.instToExprConvStep = { toExpr := Auto.Embedding.Lam.toExprConvStep✝, toTypeExpr := Lean.Expr.const `Auto.Embedding.Lam.ConvStep [] }
- validOfEtaExpand1At (pos : Nat) (occ : List Bool) : ConvAtStep
- validOfEtaReduce1At (pos : Nat) (occ : List Bool) : ConvAtStep
- validOfEtaExpandNAt (pos n : Nat) (occ : List Bool) : ConvAtStep
- validOfEtaReduceNAt (pos n : Nat) (occ : List Bool) : ConvAtStep
- validOfExtensionalizeEqAt (pos : Nat) (occ : List Bool) : ConvAtStep
- validOfExtensionalizeEqFNAt (pos n : Nat) (occ : List Bool) : ConvAtStep
- validOfIntensionalizeEqAt (pos : Nat) (occ : List Bool) : ConvAtStep
Instances For
Equations
Equations
- Auto.Embedding.Lam.instToExprConvAtStep = { toExpr := Auto.Embedding.Lam.toExprConvAtStep✝, toTypeExpr := Lean.Expr.const `Auto.Embedding.Lam.ConvAtStep [] }
Equations
Equations
- Auto.Embedding.Lam.instToExprEtomStep = { toExpr := Auto.Embedding.Lam.toExprEtomStep✝, toTypeExpr := Lean.Expr.const `Auto.Embedding.Lam.EtomStep [] }
Equations
Equations
Equations
- Auto.Embedding.Lam.instToExprFactStep = { toExpr := Auto.Embedding.Lam.toExprFactStep✝, toTypeExpr := Lean.Expr.const `Auto.Embedding.Lam.FactStep [] }
- validOfBVarLower
(pv pn : Nat)
: InferenceStep
If
t
has no loose bvar0
ands
is inhabited (pn), then∀ (_ : s), t
(pv) impliesLamTerm.instantiate1 (.atom 0) t
- validOfBVarLowers
(pv : Nat)
(pns : List Nat)
: InferenceStep
Equivalent to repeated
validOfBVarLower
- validOfImp
(p₁₂ p₁ : Nat)
: InferenceStep
t₁ → t₂
andt₁
impliest₂
- validOfImps
(imp : Nat)
(ps : List Nat)
: InferenceStep
t₁ → t₂ → ⋯ → tₖ → s
andt₁, t₂, ⋯, tₖ
impliess
- validOfInstantiate1
(pos : Nat)
(arg : LamTerm)
: InferenceStep
.bvar 0
replaced witharg
- validOfInstantiate
(pos : Nat)
(args : List LamTerm)
: InferenceStep
Call
validOfInstantiate1
sequentially onarg[0] ⋯ args[k-1]
Note that.bvar i
is not always replaced withargs[i]
because later instantiations will lower bvars inargs[i]
and may further instantiate bound variables occurring inargs[i]
- validOfInstantiateRev
(pos : Nat)
(args : List LamTerm)
: InferenceStep
Call
validOfInstantiate1
sequentially onarg[k-1] ⋯ args[0]
Note that.bvar i
is not always replaced withargs.reverse[i]
because later instantiations will lower bvars inargs.reverse[i]
and may further instantiate bound variables occurring inargs.reverse[i]
- validOfEqualize (pos : Nat) (occ : List Bool) : InferenceStep
- validOfAndLeft (pos : Nat) (occ : List Bool) : InferenceStep
- validOfAndRight (pos : Nat) (occ : List Bool) : InferenceStep
Instances For
Equations
- Auto.Embedding.Lam.instToExprInferenceStep = { toExpr := Auto.Embedding.Lam.toExprInferenceStep✝, toTypeExpr := Lean.Expr.const `Auto.Embedding.Lam.InferenceStep [] }
- validOfIntro1F (pos : Nat) : LCtxStep
- validOfIntro1H (pos : Nat) : LCtxStep
- validOfIntros (pos idx : Nat) : LCtxStep
- validOfRevert (pos : Nat) : LCtxStep
- validOfReverts (pos idx : Nat) : LCtxStep
- validOfAppend (pos : Nat) (ex : List LamSort) : LCtxStep
- validOfPrepend (pos : Nat) (ex : List LamSort) : LCtxStep
Instances For
Equations
Equations
- Auto.Embedding.Lam.instToExprLCtxStep = { toExpr := Auto.Embedding.Lam.toExprLCtxStep✝, toTypeExpr := Lean.Expr.const `Auto.Embedding.Lam.LCtxStep [] }
- nonemptyOfAtom (n : Nat) : NonemptyStep
- nonemptyOfEtom (n : Nat) : NonemptyStep
Instances For
Equations
- Auto.Embedding.Lam.instToExprNonemptyStep = { toExpr := Auto.Embedding.Lam.toExprNonemptyStep✝, toTypeExpr := Lean.Expr.const `Auto.Embedding.Lam.NonemptyStep [] }
- validOfPropNeEquivEqNot : PrepConvStep
(a ≠ b) ↔ (a = (¬ b))
- validOfTrueEqFalseEquivFalse : PrepConvStep
(True = False) ↔ False
- validOfFalseEqTrueEquivFalse : PrepConvStep
(False = True) ↔ False
- validOfEqTrueEquiv : PrepConvStep
(a = True) ↔ a
- validOfEqFalseEquiv : PrepConvStep
(a = False) ↔ (¬ a)
- validOfNeTrueEquivEqFalse : PrepConvStep
(a ≠ True) ↔ (a = False)
- validOfNeFalseEquivEqTrue : PrepConvStep
(a ≠ False) ↔ (a = True)
- validOfNotEqTrueEquivEqFalse : PrepConvStep
((¬ a) = True) ↔ (a = False)
- validOfNotEqFalseEquivEqTrue : PrepConvStep
((¬ a) = False) ↔ (a = True)
- validOfNotNotEquiv : PrepConvStep
(¬¬a) ↔ a
- validOfNotEqEquivEqNot : PrepConvStep
((¬ a) = b) ↔ (a = (¬ b))
- validOfNotEqNotEquivEq : PrepConvStep
((¬ a) = (¬ b)) ↔ (a = b)
- validOfPropext : PrepConvStep
(a ↔ b) ↔ (a = b)
- validOfNotAndEquivNotOrNot : PrepConvStep
(¬ (a ∧ b)) ↔ (¬ a ∨ ¬ b)
- validOfNotOrEquivNotAndNot : PrepConvStep
(¬ (a ∨ b)) ↔ (¬ a ∧ ¬ b)
- validOfImpEquivNotOr : PrepConvStep
(a → b) ↔ (¬ a ∨ b)
- validOfNotImpEquivAndNot : PrepConvStep
(¬ (a → b)) ↔ (a ∧ ¬ b)
- validOfPropEq : PrepConvStep
(a = b) ↔ (a ∨ ¬ b) ∧ (¬ a ∨ b)
- validOfPropNe : PrepConvStep
(a = b) ↔ (a ∨ b) ∧ (¬ a ∨ ¬ b)
- validOfPushBVCast : PrepConvStep
Basic BitVec simplification operations
Instances For
Equations
- Auto.Embedding.Lam.instToExprPrepConvStep = { toExpr := Auto.Embedding.Lam.toExprPrepConvStep✝, toTypeExpr := Lean.Expr.const `Auto.Embedding.Lam.PrepConvStep [] }
Equations
Equations
Equations
Equations
- Auto.Embedding.Lam.instToExprWFStep = { toExpr := Auto.Embedding.Lam.toExprWFStep✝, toTypeExpr := Lean.Expr.const `Auto.Embedding.Lam.WFStep [] }
Equations
Equations
Equations
Equations
- Auto.Embedding.Lam.instToExprChkStep = { toExpr := Auto.Embedding.Lam.toExprChkStep✝, toTypeExpr := Lean.Expr.const `Auto.Embedding.Lam.ChkStep [] }
Equations
- (Auto.Embedding.Lam.ConvStep.validOfHeadBeta a).toString = toString "validOfHeadBeta " ++ toString a ++ toString ""
- (Auto.Embedding.Lam.ConvStep.validOfBetaBounded a a_1).toString = toString "validOfBetaBounded " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.ConvStep.validOfExtensionalize a).toString = toString "validOfExtensionalize " ++ toString a ++ toString ""
- (Auto.Embedding.Lam.ConvStep.validOfEqSymm a).toString = toString "validOfEqSymm " ++ toString a ++ toString ""
- (Auto.Embedding.Lam.ConvStep.validOfMp a a_1).toString = toString "validOfMp " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.ConvStep.validOfMpAll a a_1).toString = toString "validOfMpAll " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.ConvStep.validOfCongrArg a a_1).toString = toString "validOfCongrArg " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.ConvStep.validOfCongrFun a a_1).toString = toString "validOfCongrFun " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.ConvStep.validOfCongr a a_1 a_2).toString = toString "validOfCongr " ++ toString a ++ toString " " ++ toString a_1 ++ toString " " ++ toString a_2 ++ toString ""
- (Auto.Embedding.Lam.ConvStep.validOfCongrArgs a a_1).toString = toString "validOfCongrArgs " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.ConvStep.validOfCongrFunN a a_1 a_2).toString = toString "validOfCongrFunN " ++ toString a ++ toString " " ++ toString a_1 ++ toString " " ++ toString a_2 ++ toString ""
- (Auto.Embedding.Lam.ConvStep.validOfCongrs a a_1 a_2).toString = toString "validOfCongrs " ++ toString a ++ toString " " ++ toString a_1 ++ toString " " ++ toString a_2 ++ toString ""
Instances For
Equations
- One or more equations did not get rendered due to their size.
- (Auto.Embedding.Lam.ConvAtStep.validOfEtaExpand1At a a_1).toString = toString "validOfEtaExpand1At " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.ConvAtStep.validOfEtaReduce1At a a_1).toString = toString "validOfEtaReduce1At " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.ConvAtStep.validOfExtensionalizeEqAt a a_1).toString = toString "validOfExtensionalizeEqAt " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.ConvAtStep.validOfIntensionalizeEqAt a a_1).toString = toString "validOfIntensionalizeEqAt " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
Instances For
Equations
- (Auto.Embedding.Lam.InferenceStep.validOfBVarLower a a_1).toString = toString "validOfBVarLower " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.InferenceStep.validOfBVarLowers a a_1).toString = toString "validOfBVarLowers " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.InferenceStep.validOfImp a a_1).toString = toString "validOfImp " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.InferenceStep.validOfImps a a_1).toString = toString "validOfImps " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.InferenceStep.validOfInstantiate1 a a_1).toString = toString "validOfInstantiate1 " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.InferenceStep.validOfInstantiate a a_1).toString = toString "validOfInstantiate " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.InferenceStep.validOfInstantiateRev a a_1).toString = toString "validOfInstantiateRev " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.InferenceStep.validOfEqualize a a_1).toString = toString "validOfEqualize " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.InferenceStep.validOfAndLeft a a_1).toString = toString "validOfAndLeft " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.InferenceStep.validOfAndRight a a_1).toString = toString "validOfAndRight " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
Instances For
Equations
- (Auto.Embedding.Lam.LCtxStep.validOfIntro1F a).toString = toString "validOfIntro1F " ++ toString a ++ toString ""
- (Auto.Embedding.Lam.LCtxStep.validOfIntro1H a).toString = toString "validOfIntro1H " ++ toString a ++ toString ""
- (Auto.Embedding.Lam.LCtxStep.validOfIntros a a_1).toString = toString "validOfIntros " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.LCtxStep.validOfRevert a).toString = toString "validOfRevert " ++ toString a ++ toString ""
- (Auto.Embedding.Lam.LCtxStep.validOfReverts a a_1).toString = toString "validOfReverts " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.LCtxStep.validOfAppend a a_1).toString = toString "validOfAppend " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.LCtxStep.validOfPrepend a a_1).toString = toString "validOfPrepend " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
Instances For
Equations
Instances For
Equations
- Auto.Embedding.Lam.PrepConvStep.validOfPropNeEquivEqNot.toString = toString "validOfPropNeEquivEqNot"
- Auto.Embedding.Lam.PrepConvStep.validOfTrueEqFalseEquivFalse.toString = toString "validOfTrueEqFalseEquivFalse"
- Auto.Embedding.Lam.PrepConvStep.validOfFalseEqTrueEquivFalse.toString = toString "validOfFalseEqTrueEquivFalse"
- Auto.Embedding.Lam.PrepConvStep.validOfEqTrueEquiv.toString = toString "validOfEqTrueEquiv"
- Auto.Embedding.Lam.PrepConvStep.validOfEqFalseEquiv.toString = toString "validOfEqFalseEquiv"
- Auto.Embedding.Lam.PrepConvStep.validOfNeTrueEquivEqFalse.toString = toString "validOfNeTrueEquivEqFalse"
- Auto.Embedding.Lam.PrepConvStep.validOfNeFalseEquivEqTrue.toString = toString "validOfNeFalseEquivEqTrue"
- Auto.Embedding.Lam.PrepConvStep.validOfNotEqTrueEquivEqFalse.toString = toString "validOfNotEqTrueEquivEqFalse"
- Auto.Embedding.Lam.PrepConvStep.validOfNotEqFalseEquivEqTrue.toString = toString "validOfNotEqFalseEquivEqTrue"
- Auto.Embedding.Lam.PrepConvStep.validOfNotNotEquiv.toString = toString "validOfNotNotEquiv"
- Auto.Embedding.Lam.PrepConvStep.validOfNotEqEquivEqNot.toString = toString "validOfNotEqEquivEqNot"
- Auto.Embedding.Lam.PrepConvStep.validOfNotEqNotEquivEq.toString = toString "validOfNotEqNotEquivEq"
- Auto.Embedding.Lam.PrepConvStep.validOfPropext.toString = toString "validOfPropext"
- Auto.Embedding.Lam.PrepConvStep.validOfNotAndEquivNotOrNot.toString = toString "validOfNotAndEquivNotOrNot"
- Auto.Embedding.Lam.PrepConvStep.validOfNotOrEquivNotAndNot.toString = toString "validOfNotOrEquivNotAndNot"
- Auto.Embedding.Lam.PrepConvStep.validOfImpEquivNotOr.toString = toString "validOfImpEquivNotOr"
- Auto.Embedding.Lam.PrepConvStep.validOfNotImpEquivAndNot.toString = toString "validOfNotImpEquivAndNot"
- Auto.Embedding.Lam.PrepConvStep.validOfPropEq.toString = toString "validOfPropEq"
- Auto.Embedding.Lam.PrepConvStep.validOfPropNe.toString = toString "validOfPropNe"
- Auto.Embedding.Lam.PrepConvStep.validOfPushBVCast.toString = toString "validOfPushBVCast"
Instances For
Equations
- (Auto.Embedding.Lam.WFStep.wfOfCheck a a_1).toString = toString "wfOfCheck " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.WFStep.wfOfAppend a a_1).toString = toString "wfOfAppend " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.WFStep.wfOfPrepend a a_1).toString = toString "wfOfPrepend " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
- (Auto.Embedding.Lam.WFStep.wfOfHeadBeta a).toString = toString "wfOfHeadBeta " ++ toString a ++ toString ""
- (Auto.Embedding.Lam.WFStep.wfOfBetaBounded a a_1).toString = toString "wfOfBetaBounded " ++ toString a ++ toString " " ++ toString a_1 ++ toString ""
Instances For
Equations
- (Auto.Embedding.Lam.ChkStep.c a).toString = a.toString
- (Auto.Embedding.Lam.ChkStep.ca a).toString = a.toString
- (Auto.Embedding.Lam.ChkStep.e a).toString = a.toString
- (Auto.Embedding.Lam.ChkStep.f a).toString = a.toString
- (Auto.Embedding.Lam.ChkStep.i a).toString = a.toString
- (Auto.Embedding.Lam.ChkStep.l a).toString = a.toString
- (Auto.Embedding.Lam.ChkStep.n a).toString = a.toString
- (Auto.Embedding.Lam.ChkStep.p a a_1 a_2).toString = toString "" ++ toString a.toString ++ toString " " ++ toString a_1 ++ toString " " ++ toString a_2 ++ toString ""
- (Auto.Embedding.Lam.ChkStep.w a).toString = a.toString
Instances For
Equations
Equations
- (Auto.Embedding.Lam.ConvStep.validOfHeadBeta a).premises = [a]
- (Auto.Embedding.Lam.ConvStep.validOfBetaBounded a a_1).premises = [a]
- (Auto.Embedding.Lam.ConvStep.validOfExtensionalize a).premises = [a]
- (Auto.Embedding.Lam.ConvStep.validOfEqSymm a).premises = [a]
- (Auto.Embedding.Lam.ConvStep.validOfMp a a_1).premises = [a, a_1]
- (Auto.Embedding.Lam.ConvStep.validOfMpAll a a_1).premises = [a, a_1]
- (Auto.Embedding.Lam.ConvStep.validOfCongrArg a a_1).premises = [a, a_1]
- (Auto.Embedding.Lam.ConvStep.validOfCongrFun a a_1).premises = [a, a_1]
- (Auto.Embedding.Lam.ConvStep.validOfCongr a a_1 a_2).premises = [a, a_1, a_2]
- (Auto.Embedding.Lam.ConvStep.validOfCongrArgs a a_1).premises = a :: a_1
- (Auto.Embedding.Lam.ConvStep.validOfCongrFunN a a_1 a_2).premises = [a, a_1]
- (Auto.Embedding.Lam.ConvStep.validOfCongrs a a_1 a_2).premises = a :: a_1 :: a_2
Instances For
Equations
- (Auto.Embedding.Lam.ConvAtStep.validOfEtaExpand1At a a_1).premises = [a]
- (Auto.Embedding.Lam.ConvAtStep.validOfEtaReduce1At a a_1).premises = [a]
- (Auto.Embedding.Lam.ConvAtStep.validOfEtaExpandNAt a a_1 a_2).premises = [a]
- (Auto.Embedding.Lam.ConvAtStep.validOfEtaReduceNAt a a_1 a_2).premises = [a]
- (Auto.Embedding.Lam.ConvAtStep.validOfExtensionalizeEqAt a a_1).premises = [a]
- (Auto.Embedding.Lam.ConvAtStep.validOfExtensionalizeEqFNAt a a_1 a_2).premises = [a]
- (Auto.Embedding.Lam.ConvAtStep.validOfIntensionalizeEqAt a a_1).premises = [a]
Instances For
Equations
Instances For
Equations
Instances For
Equations
- (Auto.Embedding.Lam.InferenceStep.validOfBVarLower a a_1).premises = [a, a_1]
- (Auto.Embedding.Lam.InferenceStep.validOfBVarLowers a a_1).premises = a :: a_1
- (Auto.Embedding.Lam.InferenceStep.validOfImp a a_1).premises = [a, a_1]
- (Auto.Embedding.Lam.InferenceStep.validOfImps a a_1).premises = a :: a_1
- (Auto.Embedding.Lam.InferenceStep.validOfInstantiate1 a a_1).premises = [a]
- (Auto.Embedding.Lam.InferenceStep.validOfInstantiate a a_1).premises = [a]
- (Auto.Embedding.Lam.InferenceStep.validOfInstantiateRev a a_1).premises = [a]
- (Auto.Embedding.Lam.InferenceStep.validOfEqualize a a_1).premises = [a]
- (Auto.Embedding.Lam.InferenceStep.validOfAndLeft a a_1).premises = [a]
- (Auto.Embedding.Lam.InferenceStep.validOfAndRight a a_1).premises = [a]
Instances For
Equations
- (Auto.Embedding.Lam.LCtxStep.validOfIntro1F a).premises = [a]
- (Auto.Embedding.Lam.LCtxStep.validOfIntro1H a).premises = [a]
- (Auto.Embedding.Lam.LCtxStep.validOfIntros a a_1).premises = [a]
- (Auto.Embedding.Lam.LCtxStep.validOfRevert a).premises = [a]
- (Auto.Embedding.Lam.LCtxStep.validOfReverts a a_1).premises = [a]
- (Auto.Embedding.Lam.LCtxStep.validOfAppend a a_1).premises = [a]
- (Auto.Embedding.Lam.LCtxStep.validOfPrepend a a_1).premises = [a]
Instances For
Equations
Instances For
Equations
- (Auto.Embedding.Lam.ChkStep.c a).premises = a.premises
- (Auto.Embedding.Lam.ChkStep.ca a).premises = a.premises
- (Auto.Embedding.Lam.ChkStep.e a).premises = a.premises
- (Auto.Embedding.Lam.ChkStep.f a).premises = a.premises
- (Auto.Embedding.Lam.ChkStep.i a).premises = a.premises
- (Auto.Embedding.Lam.ChkStep.l a).premises = a.premises
- (Auto.Embedding.Lam.ChkStep.n a).premises = a.premises
- (Auto.Embedding.Lam.ChkStep.p a a_1 a_2).premises = [a_1]
- (Auto.Embedding.Lam.ChkStep.w a).premises = a.premises
Instances For
- fail : EvalResult
- addEntry (e : REntry) : EvalResult
- newEtomWithValid (s : LamSort) (lctx : List LamSort) (t : LamTerm) : EvalResult
Instances For
Equations
Equations
- Auto.Embedding.Lam.EvalResult.fail.toString = "fail"
- (Auto.Embedding.Lam.EvalResult.addEntry a).toString = toString "addEntry (" ++ toString a ++ toString ")"
- (Auto.Embedding.Lam.EvalResult.newEtomWithValid a a_1 a_2).toString = toString "newEtomWithValid " ++ toString a ++ toString " " ++ toString a_1 ++ toString " " ++ toString a_2 ++ toString ""
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
- Auto.Embedding.Lam.EvalResult.correct r cv Auto.Embedding.Lam.EvalResult.fail = True
- Auto.Embedding.Lam.EvalResult.correct r cv (Auto.Embedding.Lam.EvalResult.addEntry a) = Auto.Embedding.Lam.REntry.correct cv r.maxEVarSucc a
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Auto.Embedding.Lam.LCtxStep.evalValidOfIntros lctx t 0 = Auto.Embedding.Lam.EvalResult.addEntry (Auto.Embedding.Lam.REntry.valid lctx t)
Instances For
Equations
- Auto.Embedding.Lam.LCtxStep.evalValidOfReverts lctx t 0 = Auto.Embedding.Lam.EvalResult.addEntry (Auto.Embedding.Lam.REntry.valid lctx t)
- Auto.Embedding.Lam.LCtxStep.evalValidOfReverts [] t n.succ = Auto.Embedding.Lam.EvalResult.fail
- Auto.Embedding.Lam.LCtxStep.evalValidOfReverts (s :: lctx_2) t n.succ = Auto.Embedding.Lam.LCtxStep.evalValidOfReverts lctx_2 (Auto.Embedding.Lam.LamTerm.mkForallEF s t) n
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Auto.Embedding.Lam.InferenceStep.evalValidOfInstantiate n ltv lctx t [] = Auto.Embedding.Lam.EvalResult.addEntry (Auto.Embedding.Lam.REntry.valid lctx t)
- Auto.Embedding.Lam.InferenceStep.evalValidOfInstantiate n ltv [] t (arg :: args) = Auto.Embedding.Lam.EvalResult.fail
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
- Auto.Embedding.Lam.FactStep.boolFacts.eval = Auto.Embedding.Lam.EvalResult.addEntry (Auto.Embedding.Lam.REntry.valid [] Auto.Embedding.Lam.LamTerm.boolFacts)
- (Auto.Embedding.Lam.FactStep.iteSpec a).eval = Auto.Embedding.Lam.EvalResult.addEntry (Auto.Embedding.Lam.REntry.valid [] (Auto.Embedding.Lam.LamTerm.iteSpec a))
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.
- Auto.Embedding.Lam.NonemptyStep.eval lvt r (Auto.Embedding.Lam.NonemptyStep.nonemptyOfAtom a) = Auto.Embedding.Lam.EvalResult.addEntry (Auto.Embedding.Lam.REntry.nonempty (lvt a))
Instances For
Equations
- Auto.Embedding.Lam.PrepConvStep.validOfPropNeEquivEqNot.eval = Auto.Embedding.Lam.LamTerm.prop_ne_equiv_eq_not?
- Auto.Embedding.Lam.PrepConvStep.validOfTrueEqFalseEquivFalse.eval = Auto.Embedding.Lam.LamTerm.true_eq_false_equiv_false?
- Auto.Embedding.Lam.PrepConvStep.validOfFalseEqTrueEquivFalse.eval = Auto.Embedding.Lam.LamTerm.false_eq_true_equiv_false?
- Auto.Embedding.Lam.PrepConvStep.validOfEqTrueEquiv.eval = Auto.Embedding.Lam.LamTerm.eq_true_equiv?
- Auto.Embedding.Lam.PrepConvStep.validOfEqFalseEquiv.eval = Auto.Embedding.Lam.LamTerm.eq_false_equiv?
- Auto.Embedding.Lam.PrepConvStep.validOfNeTrueEquivEqFalse.eval = Auto.Embedding.Lam.LamTerm.ne_true_equiv_eq_false?
- Auto.Embedding.Lam.PrepConvStep.validOfNeFalseEquivEqTrue.eval = Auto.Embedding.Lam.LamTerm.ne_false_equiv_eq_true?
- Auto.Embedding.Lam.PrepConvStep.validOfNotEqTrueEquivEqFalse.eval = Auto.Embedding.Lam.LamTerm.not_eq_true_equiv_eq_false?
- Auto.Embedding.Lam.PrepConvStep.validOfNotEqFalseEquivEqTrue.eval = Auto.Embedding.Lam.LamTerm.not_eq_false_equiv_eq_true?
- Auto.Embedding.Lam.PrepConvStep.validOfNotNotEquiv.eval = Auto.Embedding.Lam.LamTerm.not_not_equiv?
- Auto.Embedding.Lam.PrepConvStep.validOfNotEqEquivEqNot.eval = Auto.Embedding.Lam.LamTerm.not_eq_equiv_eq_not?
- Auto.Embedding.Lam.PrepConvStep.validOfNotEqNotEquivEq.eval = Auto.Embedding.Lam.LamTerm.not_eq_not_equiv_eq?
- Auto.Embedding.Lam.PrepConvStep.validOfPropext.eval = Auto.Embedding.Lam.LamTerm.propext?
- Auto.Embedding.Lam.PrepConvStep.validOfNotAndEquivNotOrNot.eval = Auto.Embedding.Lam.LamTerm.not_and_equiv_not_or_not?
- Auto.Embedding.Lam.PrepConvStep.validOfNotOrEquivNotAndNot.eval = Auto.Embedding.Lam.LamTerm.not_or_equiv_not_and_not?
- Auto.Embedding.Lam.PrepConvStep.validOfImpEquivNotOr.eval = Auto.Embedding.Lam.LamTerm.imp_equiv_not_or?
- Auto.Embedding.Lam.PrepConvStep.validOfNotImpEquivAndNot.eval = Auto.Embedding.Lam.LamTerm.not_imp_equiv_and_not?
- Auto.Embedding.Lam.PrepConvStep.validOfPropEq.eval = Auto.Embedding.Lam.LamTerm.propeq?
- Auto.Embedding.Lam.PrepConvStep.validOfPropNe.eval = Auto.Embedding.Lam.LamTerm.propne?
- Auto.Embedding.Lam.PrepConvStep.validOfPushBVCast.eval = fun (t : Auto.Embedding.Lam.LamTerm) => some (Auto.Embedding.Lam.LamTerm.pushBVCast Auto.Embedding.Lam.BVCastType.none t)
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.
- Auto.Embedding.Lam.ChkStep.eval lvt lit r (Auto.Embedding.Lam.ChkStep.c a) = Auto.Embedding.Lam.ConvStep.eval r a
- Auto.Embedding.Lam.ChkStep.eval lvt lit r (Auto.Embedding.Lam.ChkStep.ca a) = Auto.Embedding.Lam.ConvAtStep.eval r a
- Auto.Embedding.Lam.ChkStep.eval lvt lit r (Auto.Embedding.Lam.ChkStep.e a) = Auto.Embedding.Lam.EtomStep.eval lvt lit r a
- Auto.Embedding.Lam.ChkStep.eval lvt lit r (Auto.Embedding.Lam.ChkStep.f a) = a.eval
- Auto.Embedding.Lam.ChkStep.eval lvt lit r (Auto.Embedding.Lam.ChkStep.i a) = Auto.Embedding.Lam.InferenceStep.eval lvt lit r a
- Auto.Embedding.Lam.ChkStep.eval lvt lit r (Auto.Embedding.Lam.ChkStep.l a) = Auto.Embedding.Lam.LCtxStep.eval r a
- Auto.Embedding.Lam.ChkStep.eval lvt lit r (Auto.Embedding.Lam.ChkStep.n a) = Auto.Embedding.Lam.NonemptyStep.eval lvt r a
- Auto.Embedding.Lam.ChkStep.eval lvt lit r (Auto.Embedding.Lam.ChkStep.w a) = Auto.Embedding.Lam.WFStep.eval lvt lit r a
Instances For
Equations
- One or more equations did not get rendered due to their size.
- r.runEvalResult n Auto.Embedding.Lam.EvalResult.fail = r
- r.runEvalResult n (Auto.Embedding.Lam.EvalResult.addEntry a) = { entries := r.entries.insert n a, maxEVarSucc := r.maxEVarSucc, lamEVarTy := r.lamEVarTy }
Instances For
The first ChkStep
specifies the checker step
The second Nat
specifies the position to insert the resulting term
Note that
- All entries
(x : ChkStep × Nat)
that insert result into thewf
table should have distinct second component - All entries
(x : ChkStep × Nat)
that insert result into thevalid
table should have distinct second component Note that we decide where (wf
orvalid
) to insert the resulting term by looking at(c : ChkStep).eval
Instances For
Equations
- Auto.Embedding.Lam.ChkStep.run lvt lit r c n = r.runEvalResult n (Auto.Embedding.Lam.ChkStep.eval lvt lit r c)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Note : Using this theorem directly in the checker will cause
performance issue, especially when there are a lot of
etom
s. This is probably caused by the type of eV
in
∃ eV
being dependent on the result of ChkSteps.runFromBeginning
Note : Do not use the counterpart of this theorem in proof by reflection.
Surprisingly, if we use this theorem in proof by reflection, the performance
issue will not be the ChkSteps.run
in runEq
. Instead, it would be
caused by compiling the definition of runResult
. I'm not sure why it's
the case, but Lean sometimes exhibit superlinear (even quadratic) compilation
time with respect to the size of runResult
.
Checker utility
- nonemptyMap : Std.HashMap LamSort Nat
- maxEVarSucc : Nat
- chkMap : Std.HashMap REntry ChkStep
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
- 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.