Zulip Chat Archive
Stream: mathlib4
Topic: ContinuousMultilinearMap curry/uncurry
A. (Aug 02 2024 at 20:01):
Hi! It seems to me that the first two are currying but the third is uncurrying. Any thoughts?
import Mathlib.Analysis.NormedSpace.Multilinear.Curry
variable {n : ℕ} {𝕜 : Type*} [NontriviallyNormedField 𝕜]
variable {E : Type*} [NormedAddCommGroup E] [NormedSpace 𝕜 E]
variable {G : Type*} [NormedAddCommGroup G] [NormedSpace 𝕜 G]
variable {G' : Type*} [NormedAddCommGroup G'] [NormedSpace 𝕜 G']
#check (continuousMultilinearCurryFin0 𝕜 G G' : (G [×0]→L[𝕜] G') →L[𝕜] G')
#check (continuousMultilinearCurryFin1 𝕜 G G' : (G [×1]→L[𝕜] G') →L[𝕜] (G →L[𝕜] G'))
#check (continuousMultilinearCurryLeftEquiv 𝕜 (fun _ : Fin (n + 1) => E) G :
(E →L[𝕜] E [×n]→L[𝕜] G) →L[𝕜] (E [×(n + 1)]→L[𝕜] G))
A. (Aug 02 2024 at 20:30):
These are really LinearIsometryEquivs and in each case the name of the function given for the forward direction is a variant of uncurry. So, conversely, that function would seem to be correctly named in the third case only.
A. (Aug 02 2024 at 20:32):
@Sébastien Gouëzel
Eric Wieser (Aug 04 2024 at 01:14):
docs#continuousMultilinearCurryFin0,
docs#continuousMultilinearCurryFin1,
docs#continuousMultilinearCurryLeftEquiv
Eric Wieser (Aug 04 2024 at 01:16):
I think the names of those first two are correct, and it's the names of the functions used to implement them which are wrong
Eric Wieser (Aug 04 2024 at 01:16):
@loogle Equiv, "curry"
loogle (Aug 04 2024 at 01:16):
:search: Equiv.curry, Equiv.piCurry, and 24 more
A. (Aug 05 2024 at 21:46):
That’s what I said :grinning: I’m going to assume I can take that as agreement. Thanks Eric.
A. (Aug 05 2024 at 21:57):
A. (Aug 05 2024 at 22:01):
Something has gone wrong with the CI. What on earth does this mean?
build archive
packing Mathlib/Util/SynthesizeUsing.lean as f38776054285fbfc.ltar
uncaught exception: failure in curl #[--no-progress-meter, -H, x-ms-blob-type: BlockBlob, -H, If-None-Match: *, --retry, 5, -X, PUT, --parallel, -K, /home/lean/.cache/mathlib/curl.cfg]:
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
…
Attempting to upload 4945 file(s)
Error: Process completed with exit code 1.
Kevin Buzzard (Aug 05 2024 at 22:20):
I would just try running CI again
Yury G. Kudryashov (Apr 29 2025 at 21:50):
BTW, we have both curry0/uncurry0 and constOfIsEmpty, similarly for continuousMultilinearCurryFin1 and ofSubsingleton. Should we deduplicate here?
Yury G. Kudryashov (Apr 29 2025 at 21:52):
Also, I'm going to introduce curryMid based on Fin.insertNth/Fin.succAbove, because I need it for alternating forms.
Yury G. Kudryashov (May 03 2025 at 00:59):
CC: @Sébastien Gouëzel
Sébastien Gouëzel (May 03 2025 at 06:39):
Yes, deduplicating is definitely a good idea, and curryMid also!
Yury G. Kudryashov (May 03 2025 at 06:40):
Which definitions do you prefer to stay?
Sébastien Gouëzel (May 03 2025 at 07:22):
I don't really care. Maybe keep all names with curry in them for coherence?
Yury G. Kudryashov (May 03 2025 at 07:45):
Formally, constOfIsEmpty and ofSubsingleton are more general.
Yury G. Kudryashov (May 03 2025 at 07:45):
/me is going offline for at leat 8 hrs.
Sébastien Gouëzel (May 03 2025 at 08:08):
Then only keep the more general ones as definitions, and add aliases with curry in the name for ease of discoverability?
Last updated: Dec 20 2025 at 21:32 UTC