Zulip Chat Archive

Stream: mathlib4

Topic: Existance proof of a sequence inductively (Banach DieudonnΓ©)


Christopher Hoskin (Aug 31 2024 at 10:22):

I'm attempting to prove the Banach DieudonnΓ© theorem using Mathlib4. The proof of this requires the following lemma:

universe u

/- More generally could consider a locally convex metrizable space -/
variable {π•œβ‚ : Type u} [RCLike π•œβ‚]
variable {E₁ : Type u} [NormedAddCommGroup E₁] [NormedSpace π•œβ‚ E₁]

/- The closed set, not containing the origin -/
variable (C : Set (WeakDual π•œβ‚ E₁))

/-- More generally could consider a decreasing sequence of fundamental neighbourhoods of 0 -/
def U : β„• β†’ Set E
  | 0 => univ
  | n => ball 0 n⁻¹

theorem exists_seq_finite_subsets (hC₁ : IsClosed C) (hCβ‚‚ : 0 βˆ‰ C): βˆƒ F : β„• β†’ Set E₁, βˆ€ n : β„•,
    (F n).Finite ∧ F n βŠ† (U n) ∧ polar π•œβ‚ (⋃₀ {F k | k ≀ n }) ∩ polar π•œβ‚ (U (n + 1)) ∩ C = βˆ… :=
  sorry

That is to say, show the existence of a (non-unique) sequence of sets F n in a Banach space E with the following properties:

F n βŠ† U n

polar π•œ (⋃₀ {F k | k ≀ n }) ∩ polar π•œ (U (n + 1)) ∩ C = βˆ…

where C is a weak*-closed subset of the dual of E not containing the origin and U n is the sequence of open balls of radius n at the origin.

After a lot of thrashing around, I think I have formalized the proof of the inductive step :

variable (n : β„•)

/- Placeholder for union Fβ±Ό 0 ≀ j ≀ m-/
variable (s : Set E₁)

lemma existance [ProperSpace π•œβ‚] (hC₁ : IsClosed C)
    (h : polar π•œβ‚ s ∩ C ∩ polar π•œβ‚ (U (n+1)) = βˆ…) :
    βˆƒ F, F.Finite ∧ F βŠ† (U (E := E₁) (n + 1)) ∧
      polar π•œβ‚ (s βˆͺ F) ∩ C ∩ polar π•œβ‚ (U (n+2)) = βˆ… := sorry

See https://github.com/leanprover-community/mathlib4/pull/16316 for the details (currently the proof is a right mess - I had a lot of difficult applying results like Set.inter_iInter to the output of isCompact_iff_finite_subfamily_closed).

However, I'm not sure how to feed this existance lemma into the proof of exists_seq_finite_subsets to complete the proof of the lemma.

Please could someone give me a few pointers as to how to advance this?

Thanks,

Christopher

Edward van de Meent (Aug 31 2024 at 10:52):

i think the easiest way to do this would be to use a mutual section where you define such a sequence using Exists.Choose, and immediately prove that this sequence has the properties you seek.

Edward van de Meent (Aug 31 2024 at 12:52):

alternatively, you could define a partial ordering on sequences with l ≀ r := for all N, if up to N, l has the relevant property, then l and r agree up to N (and as a result r has the relevant property up to at least N). Then, use zorns lemma to prove that there is a maximal sequence, which must have the relevant property for all n by an inductive argument

Edward van de Meent (Aug 31 2024 at 15:34):

more concretely:

zorns lemma approach

Edward van de Meent (Aug 31 2024 at 19:38):

out of curiosity, is there a chance that these helper lemmas i suggested are something that have a place in mathlib?

Edward van de Meent (Aug 31 2024 at 19:40):

i know the proofs likely warrant golfing, but i do think they might be useful to have

Christopher Hoskin (Sep 01 2024 at 06:31):

@Edward van de Meent thank you very much for your help! I'm traveling today, but will take a look as soon as I get a chance.

The helper lemmas in their current form are the ravings of a desperate man. I think I just need a lemma that lets me commute ∩ and β‹‚ and the proof could be quite straight-forward, but I couldn't get Set.inter_iInter to work (without excessive coaxing).

Christopher Hoskin (Sep 01 2024 at 14:00):

@Edward van de Meent - I meant my helper lemmas from my PR with names like more_confusion and lala2 were ravings - not yours! I hope I haven't inadvertently caused any offence? I'm very grateful for your help and will look at it when I get a moment.

Edward van de Meent (Sep 01 2024 at 14:02):

ah, it's ok. i'm glad my effort can be of help!

Edward van de Meent (Sep 01 2024 at 14:05):

for clarity, the helper lemmas i tried to refer to in my earlier question are the ones in the code i posted.


Last updated: May 02 2025 at 03:31 UTC