Zulip Chat Archive

Stream: maths

Topic: Disjunction Normal Form for a generated boolean subalgebra


Yaël Dillies (Dec 19 2024 at 08:36):

Context, which you can skip: In algebraic geometry, a constructible set in the prime spectrum of a ring R is an element of the boolean subalgebra of Set (PrimeSpectrum R) generated by open sets. I need an induction principle for constructible sets of the following form:

Let P be a predicate on Set (PrimeSpectrum R). If b is a topological basis for PrimeSpectrum R and a few side conditions are fulfilled, then P holds on all constructible sets if it is preserved under union and holds on sets of the form b i \ ⋃ j ∈ s, b j where s is a finite set.

Yaël Dillies (Dec 19 2024 at 08:40):

What you should definitely read: This induction principle feels a lot like Disjunction Normal Form from boolean formulas/circuits. So I thought I would try proving an induction principle based on the DNF. However, this seems hard without first defining boolean formulas/circuits.

Yaël Dillies (Dec 19 2024 at 08:40):

Here's my attempt so far:

import Mathlib.Order.BooleanSubalgebra
import Mathlib.Topology.Spectral.Hom

open Set TopologicalSpace

/-- An induction principle for closure membership, based on the disjunctive normal form. -/
@[elab_as_elim]
lemma BooleanSubalgebra.closure_dnf_induction {α : Type*} [BooleanAlgebra α] {s : Set α}
    {p :  g  closure s, Prop}
    (dnf : sorry)
    {x} (hx : x  closure s) : p x hx :=
  sorry

/-- The actual induction principle I care about, motivated by the Zariski topology. -/
@[elab_as_elim]
lemma IsConstructible.induction_of_isTopologicalBasis {ι α : Type*} [TopologicalSpace α]
    [CompactSpace α]
    {P :  s  BooleanSubalgebra.closure
      {U : Set α | IsOpen U   U⦄, IsCompact U  IsOpen U  IsCompact (s  U)}, Prop}
    (b : ι  Set α) (basis : IsTopologicalBasis (range b))
    (compact_inter :  i j, IsCompact (b i  b j))
    (sdiff :  i s (hs : Set.Finite s), P (b i \  j  s, b j) sorry) -- easy to prove
    (union :  s hs t ht, P s hs  P t ht  P (s  t) sorry) -- easy to prove
    (s : Set α) (hs : s  BooleanSubalgebra.closure
      {U | IsOpen U   s⦄, IsCompact U  IsOpen U  IsCompact (s  U)}) : P s hs := by
  sorry

Yaël Dillies (Dec 19 2024 at 08:41):

  1. Has anyone got code about boolean formulas/circuits? If so, code about the DNF/CNF?
  2. Do people agree with my analysis of the situation?

Mitchell Lee (Dec 19 2024 at 15:05):

This is maybe close to what you're looking for: docs#supClosure_infClosure

Mitchell Lee (Dec 19 2024 at 15:10):

The existence of DNF is equivalent to the statement that the Boolean subalgebra closure of a set s is equal to the sup closure of the inf closure of the complement closure of s ∪ {0, 1}. I do not think this statement is in mathlib, but docs#supClosure_infClosure is at least only a few steps away.

Mitchell Lee (Dec 19 2024 at 15:26):

There is first-order logic in mathlib, but I am not sure if there is the propositional calculus (zeroth-order logic) with propositions as variables

Antoine Chambert-Loir (Dec 20 2024 at 14:08):

Just to point out that your definition of constructible is incorrect in general, you have to take the boolean algebra generated by quasicompact open sets (in a general scheme, that would be retrocompact).

Antoine Chambert-Loir (Dec 20 2024 at 14:09):

In the spectrum of a noetherian ring, any open set will be quasicompact, hence your definition is often correct.

Yaël Dillies (Dec 20 2024 at 14:09):

Is that not exactly what I have written in #20054, Antoine?

Antoine Chambert-Loir (Dec 20 2024 at 14:10):

Yes, but not above.

Yaël Dillies (Dec 20 2024 at 14:11):

Ah yeah sure :smile: I didn't want to scare the computer scientists away with big scary words like "retro-compact"

Antoine Chambert-Loir (Dec 20 2024 at 14:11):

For you, is compact the same as quasi-compact?

Antoine Chambert-Loir (Dec 20 2024 at 14:11):

But then you scared me.

Yaël Dillies (Dec 20 2024 at 14:11):

Mathematician's compact = algebraic geometer's quasi-compact, have I lived in a lie?

Antoine Chambert-Loir (Dec 20 2024 at 14:12):

I think in US/UK terminology, compact does not imply Hausdorff, and that's probably the same in mathlib, so probably you're OK.

Antoine Chambert-Loir (Dec 20 2024 at 14:13):

Indeed: docs#CompactSpace

Antoine Chambert-Loir (Dec 20 2024 at 14:14):

For your initial question: you need an induction lemma for the boolean subalgebra generated by a set of a boole algebra.

Yaël Dillies (Dec 20 2024 at 14:14):

Mitchell Lee said:

The existence of DNF is equivalent to the statement that the Boolean subalgebra closure of a set s is equal to the sup closure of the inf closure of the complement closure of s ∪ {0, 1}. I do not think this statement is in mathlib, but docs#supClosure_infClosure is at least only a few steps away.

Quite a mouthful, but I like it! Something like BooleanSubalgebra.closure s = supClosure (infClosure (s ∪ {a | aᶜ ∈ s} ∪ {⊥, ⊤}))

Yaël Dillies (Dec 20 2024 at 14:16):

Antoine Chambert-Loir said:

you need an induction lemma for the boolean subalgebra generated by a set of a boole algebra.

Is that not exactly what I stated in my initial messages? or is a "boole algebra" something I don't know?

Antoine Chambert-Loir (Dec 22 2024 at 18:08):

yes, i was just confused by your invocation of dnf.


Last updated: May 02 2025 at 03:31 UTC