Lean Kernel Arena / corner-cases/eta-struct-major-and

Test "corner-cases/eta-struct-major-and"

Expected: 🤷 either · Size: 9.4 KB · Lines: 175 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source

Structure eta on a recursor's major premise, for a structure in Prop.

And.rec f ⟨x.1, x.2⟩ reduces to f x.1 x.2. And.rec f x, with a variable x : P ∧ Q, also reduces to that if the major premise is expanded by structure eta, but the official kernel does not perform structure eta on majors whose type is a proposition, so it is stuck, and conversion is not transitive (or congruent) here.

Eta for such majors is fine for structures that eliminate into every sort, like And, whose fields are all proofs. It must not be done for propositions that eliminate only into Prop, like Exists, which have no projections. The official kernel may adopt this, see https://github.com/leanprover/lean4/pull/15371, https://github.com/leanprover/lean4/issues/3213 and the overall plan in https://github.com/leanprover/lean4/issues/14977.

Checker Result ⏱️ 🧠
sokonanoda 👍 1 ms 39.9 MB
mathgraph 👍 1 ms 33.9 MB
nanoclo 👍 1 ms 47.9 MB
con-ron 👍 23 ms 60.9 MB
nanobruijn ✋ 1 ms 12.3 MB
nanoda ✋ 1 ms 3.4 MB
lazylean ✋ 1 ms 21.6 MB
con-leche 👍 4 ms 22.7 MB
eink0rn 👍 2 ms 12.3 MB
official ✋ 30 ms 67.2 MB
ind-models ✋ 101 ms 103.8 MB
lean4lean ✋ 74 ms 104.3 MB
tenet ✋ 136 ms 45.2 MB
tenet-hs ✋ 2 ms 9.8 MB
lean4cobol ✋ 7 ms 13.8 MB
evmlean ✋ 3.4 s 276.8 MB
mini ✋ 36 ms 74.2 MB
overfull ✋ 27.5 s 47.0 MB
metalean-slow ✋ 38 ms 71.3 MB
tenet-jvm ✋ 118 ms 66.1 MB
nanoclo-fortran 👍 1 ms 4.6 MB
kiota ✋ 1 ms 7.3 MB
metalean-fast ✋ 31 ms 72.4 MB
canonical-min ✋ 390 ms 1.1 GB
rpylean 👍 1 ms 4.6 MB
vow-lean-kernel 👍 84 ms 8.5 MB
parse-only 👍 28 ms 65.8 MB