Skip to content

Conversation

@affeldt-aist
Copy link
Member

Motivation for this change
Checklist
  • added corresponding entries in CHANGELOG_UNRELEASED.md
  • added corresponding documentation in the headers

Reference: How to document

Merge policy

As a rule of thumb:

  • PRs with several commits that make sense individually and that
    all compile are preferentially merged into master.
  • PRs with disorganized commits are very likely to be squash-rebased.
Reminder to reviewers

@affeldt-aist affeldt-aist added the enhancement ✨ This issue/PR is about adding new features enhancing the library label Nov 28, 2025
@affeldt-aist affeldt-aist added this to the 1.15.0 milestone Nov 28, 2025
Let A_nonempty x : A (N_ x) (idx_ x) !=set0.
Proof. by move: x => [[? ?]] []. Qed.

Let elt_rel i j := [/\ (idx_ j = (idx_ i).+1),
Copy link
Member Author

Choose a reason for hiding this comment

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

rm parentheses

Qed.

Let adherence_value_cvg_direct : adherence_value u_ a ->
exists2 f : nat -> nat, increasing_seq f & (u_ \o f @ \oo --> a).
Copy link
Member Author

Choose a reason for hiding this comment

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

rm parentheses?

@affeldt-aist
Copy link
Member Author

Note that Bolzano-Weierstrass is a direct consequence of these lemmas.

Qed.

Definition adherence_value {R : numDomainType} (u_ : R^nat) (a : R) :=
forall (e : R) n, e > 0 -> exists2 p, (p >= n)%N & `|u_ p - a| <= e.
Copy link
Collaborator

Choose a reason for hiding this comment

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

I am wondering if we would prefer a \in closure (range u_ : set R^o).

Proof.
move=> A0.
pose B : set int := [set x%:~R | x in A].
have B0 : B !=set0 by case: A0 => a Aa; exists a%:~R, a.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
have B0 : B !=set0 by case: A0 => a Aa; exists a%:~R, a.
have B0 : B !=set0 by apply: image_nonempty.

golfing

Comment on lines +665 to +667
have : lbound B 0 by move=> _ [b0 Bb0 <-]; rewrite ler0z.
move/(int_lbound_has_minimum B0) => [_ [[i Ai <-]]] Bi.
exists i; split => // k Bk.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
have : lbound B 0 by move=> _ [b0 Bb0 <-]; rewrite ler0z.
move/(int_lbound_has_minimum B0) => [_ [[i Ai <-]]] Bi.
exists i; split => // k Bk.
have: lbound B 0 by move=> _ [b0 Bb0 <-]; rewrite ler0z.
move/(int_lbound_has_minimum B0) => [_ [[i Ai <-]]] Bi.
exists i; split=> // k Bk.

@Tragicus
Copy link
Collaborator

Tragicus commented Dec 3, 2025

Note that Bolzano-Weierstrass is a direct consequence of these lemmas.

How so?

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

Labels

enhancement ✨ This issue/PR is about adding new features enhancing the library

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants