Skip to content

Section 11.1: fix two unprovable statements#505

Open
rkirov wants to merge 1 commit into
teorth:mainfrom
rkirov:upstream-fixes-11-1
Open

Section 11.1: fix two unprovable statements#505
rkirov wants to merge 1 commit into
teorth:mainfrom
rkirov:upstream-fixes-11-1

Conversation

@rkirov
Copy link
Copy Markdown
Contributor

@rkirov rkirov commented May 23, 2026

  • The intersection example near BoundedInterval.inter_eq claimed Ioo 2 4 ∩ Icc 4 6 = Icc 4 4, which is false as sets (Ioo 2 4 ∩ Icc 4 6 = ∅). Change to Icc 2 4 ∩ Icc 4 6, matching the intended Icc 4 4 RHS.

  • Example 11.1.17 stated (P' ⊔ P).intervals = {Icc 1 2, Ioo 2 3, Icc 3 4, ∅} as a Finset BoundedInterval equality, which is unprovable because BoundedInterval.inter is Classical.choose-based and does not commit to a canonical constructor (e.g. nothing forces (Icc 1 2 ∩ Ico 1 3 : BoundedInterval) = Icc 1 2). Restate the third conjunct at the set level, via the coercion image, with a comment explaining why.

- The intersection example near `BoundedInterval.inter_eq` claimed
  `Ioo 2 4 ∩ Icc 4 6 = Icc 4 4`, which is false as sets
  (`Ioo 2 4 ∩ Icc 4 6 = ∅`).  Change to `Icc 2 4 ∩ Icc 4 6`, matching
  the intended `Icc 4 4` RHS.

- Example 11.1.17 stated `(P' ⊔ P).intervals = {Icc 1 2, Ioo 2 3, Icc 3 4, ∅}`
  as a `Finset BoundedInterval` equality, which is unprovable because
  `BoundedInterval.inter` is `Classical.choose`-based and does not commit
  to a canonical constructor (e.g. nothing forces
  `(Icc 1 2 ∩ Ico 1 3 : BoundedInterval) = Icc 1 2`, they are only
  equal after mapping toSet).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
example : ∃ P P' : Partition (Icc 1 4),
P.intervals = {Ico 1 3, Icc 3 4} ∧
P'.intervals = {Icc 1 2, Ioc 2 4} ∧
(P' ⊔ P).intervals.image toSet =
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one is subtle due to not having extensional equality on BoundedIntervals, which means we can't ever prove even simple A ∩ B = C for BoundedIntervals without going to Sets. I thought about some larger changes to the setup (e.g. constructing computable intersection method for BoundedIntervals), but the easiest way was just change this to confirm equality with Sets.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant