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 onSet (PrimeSpectrum R)
. Ifb
is a topological basis forPrimeSpectrum R
and a few side conditions are fulfilled, thenP
holds on all constructible sets if it is preserved under union and holds on sets of the formb i \ ⋃ j ∈ s, b j
wheres
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):
- Has anyone got code about boolean formulas/circuits? If so, code about the DNF/CNF?
- 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 ofs ∪ {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