Closed tydeu closed 14 hours ago
It is not entirely clear to me whether these definitions belong in Init.Data.UInt.Basic
or Init.Data.UInt.BasicAux
, because I do not know what the meta code BasicAux
refers to is. I placed them in Init.Data.UInt.Basic
because that is where the corresponding UInt32.toUSize
and USize.toUInt32
definitions are.
Mathlib CI status (docs):
It is not entirely clear to me whether these definitions belong in
Init.Data.UInt.Basic
orInit.Data.UInt.BasicAux
, because I do not know what the meta codeBasicAux
refers to is. I placed them inInit.Data.UInt.Basic
because that is where the correspondingUInt32.toUSize
andUSize.toUInt32
definitions are.
As far as I am aware, the only reason BasicAux
exists is because of bootstrapping / import cycle issues. So if you got it to compile in Basic
then I think that's fine. (If you would like to find out why this division exists, I encourage you to try merging the two files and see what goes wrong.)
As far as I am aware, the only reason BasicAux exists is because of bootstrapping / import cycle issues. So if you got it to compile in Basic then I think that's fine.
Correct. The import cycle here is due to the fact that some UIntX
stuff is used in conjunction with Array
and from there with Syntax
. For example the definition of the existential binder requires some UIntX
stuff to already exist.
This PR makes
USize.toUInt64
a regular non-opaque definition.It also moves it to
Init.Data.UInt.Basic
, as it is not actually used inInit.Prelude
anymore.