Zulip Chat Archive

Stream: mathlib4

Topic: mathport


Yury G. Kudryashov (May 27 2023 at 23:02):

Hi, did something happen to mathport? The last commit that went through is #19062

Yury G. Kudryashov (May 27 2023 at 23:06):

Indeed, https://github.com/leanprover-community/mathport/actions/runs/5100946585 says that "process completed with exit code 1".

Yury G. Kudryashov (May 27 2023 at 23:08):

@Mario Carneiro Is it possible that your changes from 2 days ago broke it?

Kyle Miller (May 27 2023 at 23:09):

This is a curious error:

remote: error: File Mathbin/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean
is 278.63 MB; this exceeds GitHub's file size limit of 100.00 MB

Yury G. Kudryashov (May 27 2023 at 23:09):

Where did you find the error?

Yury G. Kudryashov (May 27 2023 at 23:10):

And how did we get such a huge file?

Kyle Miller (May 27 2023 at 23:10):

I clicked "Mathport" on that link, clicked "update port repos (master)" then scrolled down

Yury G. Kudryashov (May 27 2023 at 23:13):

https://github.com/leanprover-community/mathport/actions/runs/5091663507/jobs/9151993679

Yury G. Kudryashov (May 27 2023 at 23:13):

The first failure :up: no space left on device

Eric Wieser (May 27 2023 at 23:14):

I think we need to stop outputting the warning messages in the lean files themselves

Eric Wieser (May 27 2023 at 23:14):

Or at least, truncate each one to 100kb

Yury G. Kudryashov (May 27 2023 at 23:14):

Who can run it locally and see what happens? AFAIR, it needs more RAM than I have.

Yury G. Kudryashov (May 27 2023 at 23:15):

I'm OK with truncating each one to 1kb.

Eric Wieser (May 27 2023 at 23:16):

I'd be ok with truncating each one to 0b; I don't think anyone is using them at all...

Eric Wieser (May 27 2023 at 23:17):

Kyle Miller said:

This is a curious error:

remote: error: File Mathbin/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean
is 278.63 MB; this exceeds GitHub's file size limit of 100.00 MB

I wonder if reverting !4#4384 fixes the problem

Yury G. Kudryashov (May 27 2023 at 23:18):

No, the problem started before that

Yury G. Kudryashov (May 27 2023 at 23:18):

I linked to the first failure above.

Yury G. Kudryashov (May 27 2023 at 23:20):

BTW, did mathport change align logic some time ago? 9cb92e8c581bb6d7a1f3c106109eeaeb56437f8a changes some Preorder.toLE in warnings to Preorder.toHasLE.

Yury G. Kudryashov (May 27 2023 at 23:21):

It's May 16

Yury G. Kudryashov (May 27 2023 at 23:23):

No, it's !4#4000 removed some #aligns

Eric Wieser (May 27 2023 at 23:23):

Yury G. Kudryashov said:

The first failure :up: no space left on device

This sounds like we just need to delete some junk from our CI machines

Yury G. Kudryashov (May 27 2023 at 23:24):

You can go through all actions at https://github.com/leanprover-community/mathport/actions

Yury G. Kudryashov (May 27 2023 at 23:25):

I'm going to add some #aligns back

Yury G. Kudryashov (May 27 2023 at 23:35):

!4#4427

Eric Wieser (May 28 2023 at 00:37):

Thankfully it looks like the predata step is still running fine, so one we fix this we'll get a new mathport output in 2 hours rather than at the end of the day

Mario Carneiro (May 28 2023 at 00:37):

just pushed a fix

Pol'tta / Miyahara Kō (May 28 2023 at 03:21):

Foo! Mathport have finished running now!

Mario Carneiro (May 28 2023 at 03:36):

I'm curious how much mathlib3port decreased in size

Mario Carneiro (May 28 2023 at 03:38):

764.4MB -> 236.6MB

Mario Carneiro (May 28 2023 at 03:39):

and exactly the same line count, which is fun

Mario Carneiro (May 28 2023 at 04:28):

the savings isn't as much as I was hoping, it seems that a 10k limit per message is still enough to cause a lot of text since in many files almost every declaration is marked as dubious

Mario Carneiro (May 28 2023 at 04:28):

I pushed another fix to just turn off the dubious message entirely, since I think it is too late to change our processes to keep these messages under control

Mario Carneiro (May 28 2023 at 08:51):

without the dubious translation messages, it has decreased again from 236.5MB to 104.2MB

Eric Wieser (May 28 2023 at 09:02):

On the assumption they don't block the port, is the intent then to write off any truly dubious (i.e. incorrect) translations as the cost of porting, and hope that either the changes are cosmetic, or in the case of dropped Sort/Type generalizations something that a mathlib4 user will eventually PR again anyway? Or is there still some vague hope of using mathport to ask "did we port everything correctly"?

Mario Carneiro (May 28 2023 at 09:18):

I think the main blocker for mathport dubious translation messages at this stage are all the unaligned instances

Mario Carneiro (May 28 2023 at 09:20):

although if we had #aligns for all of the autogenerated instance names I'm sure we'd be back to 700MB in no time

Eric Wieser (May 28 2023 at 09:22):

I thought the main blocker was universe arguments being in the wrong order everywhere?

Mario Carneiro (May 28 2023 at 09:24):

TBH it's hard to tell from the error messages

Mario Carneiro (May 28 2023 at 09:25):

that was certainly a problem, no idea if it's the main one

Mario Carneiro (May 28 2023 at 09:25):

it all feels pretty hopeless at this point to get defeq somehow

Mario Carneiro (May 28 2023 at 09:26):

I would be okay with just not trying to use mathport to check our work and just rely on the internal coherence of the library

Eric Wieser (May 28 2023 at 09:41):

Perhaps just checking everything in mathlib3 is aligned is good enough, without checking if the alignment is perfect

Damiano Testa (May 28 2023 at 10:13):

After all, the trust in the mathlib3 library also comes mostly from cohesion -- just like in informal mathematics! :upside_down:

Yury G. Kudryashov (May 28 2023 at 16:45):

I think that open_locale should be translated as open scoped, not open

Yury G. Kudryashov (May 28 2023 at 16:46):

E.g., in !4#4453, opening NNReal was a bad idea.

Eric Wieser (May 29 2023 at 14:12):

The builds still seem to be failing, see this log

Eric Wieser (May 29 2023 at 14:13):

uncaught exception: failed to port Mathbin:MeasureTheory.Function.Jacobian with imports [Leanbin.Init.Default, Mathbin.Analysis.Calculus.Inverse, Mathbin.MeasureTheory.Constructions.BorelSpace.ContinuousLinearMap, Mathbin.MeasureTheory.Covering.BesicovitchVectorSpace, Mathbin.MeasureTheory.Measure.Lebesgue.EqHaar, Mathbin.Analysis.NormedSpace.Pointwise, Mathbin.MeasureTheory.Constructions.Polish]:
import Mathbin.Topology.MetricSpace.Polish failed, environment already contains '_proof_3' from Mathbin.Analysis.InnerProductSpace.PiL2

Mario Carneiro (May 29 2023 at 14:14):

that error looks to be unrelated to the archive/ stuff

Eric Wieser (May 29 2023 at 14:14):

Yes; I was not intending to make a connection there

Eric Wieser (May 29 2023 at 14:14):

I guess it's also unrelated to the "100k of error message is too much error message" stuff

Mario Carneiro (May 29 2023 at 14:15):

is MeasureTheory.Function.Jacobian a new file?

Eric Wieser (May 29 2023 at 14:15):

My guess is that this was broken by us porting port-status#analysis/inner_product_space/pi_L2

Mario Carneiro (May 29 2023 at 14:16):

I don't see MeasureTheory.Function.Jacobian in the last successful run

Eric Wieser (May 29 2023 at 14:17):

port-status#measure_theory/function/jacobian

Damiano Testa (May 29 2023 at 14:17):

It is one of the targets of the port progress, I think.

Eric Wieser (May 29 2023 at 14:17):

The file has existed for ages

Mario Carneiro (May 29 2023 at 14:18):

I mean new to mathlib4 since the last mathport run

Eric Wieser (May 29 2023 at 14:19):

The file shouldn't be in mathlib4 yet

Eric Wieser (May 29 2023 at 14:19):

What's new to mathlib4 is PiL2

Mario Carneiro (May 29 2023 at 14:19):

yeah, most likely changes in either Topology.MetricSpace.Polish or Analysis.InnerProductSpace.PiL2 are to blame

Mario Carneiro (May 29 2023 at 14:20):

compared to the autogenerated versions of these files

Yury G. Kudryashov (May 31 2023 at 12:50):

mathport doesn't work again

Yury G. Kudryashov (May 31 2023 at 12:50):

https://github.com/leanprover-community/mathport/actions

Yury G. Kudryashov (May 31 2023 at 12:50):

Some updates failed, then many jobs are "Queued"

Eric Wieser (May 31 2023 at 12:53):

image.png

Kevin Buzzard (May 31 2023 at 13:16):

What happened to 4 and 5?

Eric Wieser (May 31 2023 at 13:32):

I think they might be owned by leanprover rather than leanprover-community

Scott Morrison (Jun 01 2023 at 02:06):

Eric's screenshot was from https://github.com/leanprover-community/mathlib4/settings/actions/runners. Everything looks healthier now!

Scott Morrison (Jun 01 2023 at 02:23):

As far as I can tell we haven't actually been running mathlib4 CI on the Hoskinson machines at all yet. !4#4539 turns this on.

Yury G. Kudryashov (Jun 01 2023 at 02:24):

Now we can see that mathport actually fails

Yury G. Kudryashov (Jun 01 2023 at 02:24):

On MeasureTheory.Function.Jacobian

Mario Carneiro (Jun 01 2023 at 02:25):

yeah, that's the same failure that was reported before

Mario Carneiro (Jun 01 2023 at 02:26):

I ran mathport locally to diagnose, but I'm still at the stage "well, I guess _proof_3 is in both of those oleans" until I can figure out how to load the oleans or the tleans to find out who put it there

Mario Carneiro (Jun 01 2023 at 02:49):

Aha: [translateName] orthonormal_basis.has_coe_to_fun._proof_3 -> _proof_3

Mario Carneiro (Jun 01 2023 at 02:50):

my guess is that orthonormal_basis.has_coe_to_fun has been #noaligned, which is stored as an alignment to .anonymous, and so its _proof_3 subproof was translated to just plain _proof_3

Mario Carneiro (Jun 01 2023 at 02:50):

(because spoilers, mathport doesn't actually do anything about #noalign)

Mario Carneiro (Jun 01 2023 at 03:11):

pushed a fix

Mario Carneiro (Jun 03 2023 at 20:49):

import Archive.Imo.Imo2005Q4 failed, environment already contains 'Imo.a' from Archive.Imo.Imo1998Q2

seems the archive is still not fixed

Mario Carneiro (Jun 03 2023 at 20:50):

and now it's on mathport master so we should probably get this fixed soonish

Damiano Testa (Jun 03 2023 at 20:51):

Ah, I used imo as namespace for the files in imo, so that the theorem names that were the actual full imo problem name would not cause duplicates. I can fix this, but I'm not sure that I'll have time tomorrow. On Monday for sure, though.

Damiano Testa (Jun 03 2023 at 20:55):

Probably the simplest is to use the filename as namespace and possibly turn off the repeated namespace linter (if it even complains).

Eric Wieser (Jun 03 2023 at 20:57):

I think we can drop the .imo. part of the namespace if the namespace is archive.imo2005Q4

Damiano Testa (Jun 03 2023 at 20:57):

Note that namespace imo and end imo should be the only lines that need changing.

Damiano Testa (Jun 03 2023 at 20:58):

Eric, I did not use archive, just imo.

Damiano Testa (Jun 03 2023 at 21:00):

A possible solution would be to sed the lines mentioned above with something like sed -i "s=^namespace imo$=namespace ${filename}=" "${filename}" and similarly with end.

Damiano Testa (Jun 03 2023 at 21:03):

Btw, why was the name clash not picked up by the linter that Eric mentioned?

Damiano Testa (Jun 03 2023 at 21:09):

To summarise, my mistake has been that I introduced a namespace that would shield src names from names in archive, but it does not shield names clashes between different imo files. For that, using a file-dependent namespace would solve the issue.

Eric Wieser (Jun 03 2023 at 21:13):

Damiano Testa said:

Btw, why was the name clash not picked up by the linter that Eric mentioned?

Because the linter ran in mathlib3 where the names are a and A

Eric Wieser (Jun 03 2023 at 21:14):

And mathport is translating them both to a then failing

Eric Wieser (Jun 03 2023 at 21:14):

Can we solve this by just committing a dummy file to mathlib4 that aligns A to A?

Eric Wieser (Jun 03 2023 at 21:14):

I would guess the IMO problems want to ignore mathlib naming conventions and actually use the same case as the real problem anyway

Mario Carneiro (Jun 03 2023 at 22:12):

The naming here is clearly not sustainable. what if another IMO problem has a variable or sequence named a or A?

Scott Morrison (Jun 03 2023 at 23:18):

This was why I put every IMO problem in its own namespace, but for some reason people didn't like this.

Yaël Dillies (Jun 03 2023 at 23:24):

I liked this idea, personally. This is what I've already done for the Oxford invariants problem when it was first PRed iirc.

Mario Carneiro (Jun 03 2023 at 23:29):

I actually thought it was the namespace archive that was considered unnecessary

Eric Wieser (Jun 04 2023 at 00:17):

Yes, putting every IMO problem in its own namespace was the part of your PR l liked most Scott!

Damiano Testa (Jun 04 2023 at 02:28):

Ok, #19152 replaces the blanket imo namespace with imoYYYY_qX. I also added nolint dup_namespace profusely and sometimes unnecessarily. Once it passes linting, I will remove the unnecessary nolint attributes.

Damiano Testa (Jun 04 2023 at 03:23):

The PR passed CI in its first form, with all the nolint dup_namespace. I have now removed the nolint on the declarations that are in fact not actually duplicated.

Eric Wieser (Jun 06 2023 at 23:05):

@Mario Carneiro, what's next in the process of actually making archive files available to port? It doesn't look like https://github.com/leanprover-community/mathlib3port/commit/4db5aed14bfb7740f99faa340ab2c7dec1c4a72c worked

Eric Wieser (Jun 06 2023 at 23:07):

Do we just need to change the git add Mathbin upstream-rev README.md lake-manifest.json line?

Mario Carneiro (Jun 06 2023 at 23:10):

I think so, I just did that

Yury G. Kudryashov (Jun 07 2023 at 17:16):

One more spacing issue: mathport outputs ∫ x in a.1 ..b.1, f x for an interval integral but Lean 4 accepts only ∫ x in a.1..b.1, f x (no space before ..). Not sure which side needs to be fixed. Note that we also have notation ∫ x in s, f x for an integral over a set, so relaxing the interval notation too much is not an option.

Scott Morrison (Jun 07 2023 at 20:56):

mathport failed overnight due to the new proofwidgets dependency in mathlib4. Hopefully should be fixed by https://github.com/leanprover-community/mathport/pull/241.

Yury G. Kudryashov (Jun 07 2023 at 21:24):

Now mathlib3port has Archive/ etc but start_port.sh doesn't support these folders.

Eric Wieser (Jun 07 2023 at 21:50):

I have a PR open for that

Eric Wieser (Jun 07 2023 at 21:50):

But right now it's a feature; if you add archive files manually they won't actually be tested in mathlib4 CI yet

Mario Carneiro (Jun 09 2023 at 04:59):

mathport is down again (expected because of the lean bump), but I'm not having any success using the downloaded cache files: lean crashes with error code 139 on startup, even on files that have already been pre-built from mathlib

Mario Carneiro (Jun 09 2023 at 05:00):

it seems to work fine in CI though

Yury G. Kudryashov (Jun 09 2023 at 05:01):

Does lake clean; killall lean; lake exe cache get help?

Yury G. Kudryashov (Jun 09 2023 at 05:02):

Another thing to try: clean your local cache and redownload.

Mario Carneiro (Jun 09 2023 at 05:02):

I did rm -rf lake-packages; lake exe cache get and it didn't seem to help

Mario Carneiro (Jun 09 2023 at 05:02):

currently building mathlib locally to see whether it makes a difference

Yury G. Kudryashov (Jun 09 2023 at 05:02):

What about ~/.cache/mathlib/?

Mario Carneiro (Jun 09 2023 at 05:03):

ah, that could be it

Mario Carneiro (Aug 26 2023 at 08:56):

Just FYI, I have reduced the rate of the "mathport" workflow (which updates mathlib4) to 1/day. It is still useful to keep it running, as it breaks every once in a while due to mathlib4 tactic changes, but it isn't being hammered constantly anymore so this seems like a better use of resources


Last updated: Dec 20 2023 at 11:08 UTC