mirror of
https://github.com/leanprover/lean4.git
synced 2026-03-17 18:34:06 +00:00
This PR deprecates `levelZero` in favor of `Level.zero` and `levelOne`
in favor of the new `Level.one`, and updates all usages throughout the
codebase. The `levelZero` alias was previously required for computed
field `data` to work, but this is no longer needed.
🤖 Prepared with Claude Code
20 lines
1.3 KiB
Lean4
20 lines
1.3 KiB
Lean4
import Lean.Level
|
|
|
|
namespace Lean
|
|
namespace Level
|
|
|
|
def mkMax (xs : Array Level) : Level :=
|
|
xs.foldl (start := 1) (init := xs[0]!) mkLevelMax
|
|
|
|
#eval toString $ normalize $ mkLevelSucc $ mkLevelSucc $ mkMax #[Level.zero, mkLevelParam `w, mkLevelSucc (mkLevelSucc (mkLevelSucc (mkLevelParam `z))), Level.one, mkLevelSucc (mkLevelSucc (mkLevelParam `x)), Level.zero, mkLevelParam `x, mkLevelParam `y, mkLevelParam `x, mkLevelParam `z, mkLevelSucc Level.one, mkLevelParam `w, mkLevelSucc (mkLevelParam `x)]
|
|
#eval toString $ normalize $ mkLevelMax Level.zero (mkLevelParam `x)
|
|
#eval toString $ normalize $ mkLevelMax (mkLevelParam `x) Level.zero
|
|
#eval toString $ normalize $ mkLevelMax Level.zero Level.one
|
|
#eval toString $ normalize $ mkLevelSucc (mkLevelMax (mkLevelParam `x) (mkLevelParam `x))
|
|
#eval toString $ normalize $ mkLevelMax (mkLevelIMax (mkLevelParam `x) Level.one) (mkLevelMax (mkLevelSucc (mkLevelParam `x)) (mkLevelParam `x))
|
|
#eval toString $ normalize $ mkLevelIMax (mkLevelIMax (mkLevelParam `x) Level.one) (mkLevelMax (mkLevelSucc (mkLevelParam `x)) (mkLevelParam `x))
|
|
#eval toString $ #[Level.zero, mkLevelSucc (mkLevelSucc (mkLevelParam `z)), Level.one, mkLevelSucc (mkLevelSucc (mkLevelParam `x)), Level.zero, mkLevelParam `x, mkLevelParam `y, mkLevelParam `x, mkLevelParam `z, mkLevelSucc (mkLevelParam `x)].qsort normLt
|
|
|
|
end Level
|
|
end Lean
|