Cached hash code, cached results, and other data for Level
.
hash : 32-bits
hasMVar : 1-bit
hasParam : 1-bit
depth : 24-bits
Instances For
Equations
Equations
- Lean.instBEqData = { beq := fun (a b : UInt64) => a == b }
Equations
- c.depth = (UInt64.shiftRight c 40).toUInt32
Instances For
Equations
- c.hasMVar = ((UInt64.shiftRight c 32).land 1 == 1)
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.
Equations
- Lean.instHashableLevelMVarId = { hash := Lean.hashLevelMVarId✝ }
Equations
- Lean.instReprLevelMVarId = { reprPrec := Lean.reprLevelMVarId✝ }
Equations
- Lean.LMVarIdSet = Lean.RBTree Lean.LMVarId fun (x1 x2 : Lean.LMVarId) => x1.name.quickCmp x2.name
Instances For
instance
Lean.instForInLMVarIdMapProdLMVarId
{m : Type u_1 → Type u_2}
{α : Type}
:
ForIn m (Lean.LMVarIdMap α) (Lean.LMVarId × α)
Equations
- Lean.instForInLMVarIdMapProdLMVarId = inferInstanceAs (ForIn m (Lean.RBMap Lean.LMVarId α fun (x1 x2 : Lean.LMVarId) => x1.name.quickCmp x2.name) (Lean.LMVarId × α))
- zero: Lean.Level
- succ: Lean.Level → Lean.Level
- max: Lean.Level → Lean.Level → Lean.Level
- imax: Lean.Level → Lean.Level → Lean.Level
- param: Lean.Name → Lean.Level
- mvar: Lean.LMVarId → Lean.Level
Instances For
@[implemented_by Lean.Level.data._override]
Equations
- One or more equations did not get rendered due to their size.
- Lean.Level.zero.data = Lean.Level.mkData 2221
- (Lean.Level.mvar mvarId).data = Lean.Level.mkData (mixHash 2237 (hash mvarId)) 0 true
- (Lean.Level.param name).data = Lean.Level.mkData (mixHash 2239 (hash name)) 0 false true
- u.succ.data = Lean.Level.mkData (mixHash 2243 u.data.hash) (u.data.depth.toNat + 1) u.data.hasMVar u.data.hasParam
Instances For
Equations
- Lean.instInhabitedLevel = { default := Lean.Level.zero }
Equations
- Lean.instReprLevel = { reprPrec := Lean.reprLevel✝ }
@[export lean_level_has_mvar]
Equations
Instances For
@[export lean_level_has_param]
Equations
Instances For
Equations
- Lean.mkLevelSucc u = u.succ
Instances For
Equations
- Lean.mkLevelMax u v = u.max v
Instances For
Equations
Instances For
@[export lean_level_mk_mvar]
Equations
Instances For
@[export lean_level_mk_param]
Equations
Instances For
@[export lean_level_mk_max]
Instances For
@[export lean_level_mk_imax]
Equations
Instances For
Instances For
Instances For
Instances For
Equations
- (Lean.Level.mvar a).isMVar = true
- x.isMVar = false
Instances For
If result is true, then forall assignments A
which assigns all parameters and metavariables occurring
in l
, l[A] != zero
Instances For
Equations
- Lean.Level.instOfNat n = { ofNat := Lean.Level.ofNat n }
Equations
- Lean.Level.addOffsetAux 0 x = x
- Lean.Level.addOffsetAux n.succ x = Lean.Level.addOffsetAux n (Lean.mkLevelSucc x)
Instances For
Equations
- u.addOffset n = Lean.Level.addOffsetAux n u
Instances For
Equations
Instances For
Equations
- lvl.getOffset = lvl.getOffsetAux 0
Instances For
Instances For
occurs u l
return true
iff u
occurs in l
.
Instances For
@[irreducible]
Instances For
Return true if u
and v
denote the same level.
Check is currently incomplete.
Instances For
Reduce (if possible) universe level by 1
Instances For
- leaf: Lean.Name → Lean.Level.PP.Result
- num: Nat → Lean.Level.PP.Result
- offset: Lean.Level.PP.Result → Nat → Lean.Level.PP.Result
- maxNode: List Lean.Level.PP.Result → Lean.Level.PP.Result
- imaxNode: List Lean.Level.PP.Result → Lean.Level.PP.Result
Instances For
Equations
- (f.offset k).succ = f.offset (k + 1)
- (Lean.Level.PP.Result.num k).succ = Lean.Level.PP.Result.num (k + 1)
- x.succ = x.offset 1
Instances For
Instances For
Instances For
Equations
- Lean.Level.instToFormat = { format := fun (u : Lean.Level) => u.format true }
Instances For
Equations
- Lean.Level.instQuoteMkStr1 = { quote := fun (u : Lean.Level) => u.quote }
Equations
- Lean.mkLevelIMax' u v = Lean.mkLevelIMaxCore✝ u v fun (x : Unit) => Lean.mkLevelIMax u v
Instances For
Equations
- Lean.simpLevelIMax' u v d = Lean.mkLevelIMaxCore✝ u v fun (x : Unit) => d
Instances For
The update functions try to avoid allocating new values using pointer equality.
Note that if the update*!
functions are used under a match-expression,
the compiler will eliminate the double-match.
@[implemented_by _private.Lean.Level.0.Lean.Level.updateSucc!Impl]
Equations
- a.succ.updateSucc! newLvl = Lean.mkLevelSucc newLvl
- lvl.updateSucc! newLvl = panicWithPosWithDecl "Lean.Level" "Lean.Level.updateSucc!" 547 14 "succ level expected"
Instances For
@[implemented_by _private.Lean.Level.0.Lean.Level.updateMax!Impl]
Instances For
@[implemented_by _private.Lean.Level.0.Lean.Level.updateIMax!Impl]
Equations
- (a.imax a_1).updateIMax! newLhs newRhs = Lean.mkLevelIMax' newLhs newRhs
- lvl.updateIMax! newLhs newRhs = panicWithPosWithDecl "Lean.Level" "Lean.Level.updateIMax!" 569 16 "imax level expected"
Instances For
Equations
- Lean.Level.mkNaryMax [] = Lean.levelZero
- Lean.Level.mkNaryMax [u] = u
- Lean.Level.mkNaryMax (u :: us) = Lean.mkLevelMax' u (Lean.Level.mkNaryMax us)
Instances For
@[specialize #[]]
Instances For
Instances For
Instances For
def
Lean.Level.instantiateParams
(u : Lean.Level)
(paramNames : List Lean.Name)
(vs : List Lean.Level)
:
Equations
- u.instantiateParams paramNames vs = u.substParams (Lean.Level.getParamSubst paramNames vs)
Instances For
Equations
- u.geq v = Lean.Level.geq.go u.normalize v.normalize
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
Instances For
Equations
- u.find? p = Lean.Level.find?.visit p u