Module mathcomp.analysis.topology_theory.bool_topology

From HB Require Import structures.
From mathcomp Require Import boot order algebra all_classical.
From mathcomp Require Import reals topology_structure uniform_structure.
From mathcomp Require Import pseudometric_structure order_topology compact.
From mathcomp Require Import discrete_topology.

# Topology for boolean numbers This file equips bool with the discrete pseudometric.

Unset SsrOldRewriteGoalsOrder.  

Import Order.TTheory GRing.Theory Num.Theory.

Local Open Scope classical_set_scope.
Local Open Scope ring_scope.

HBSource code.instanceSource code DefinitionSource code _Source code :=Source code hasNbhsSource code.Build bool principal_filter.
HBSource code.instanceSource code DefinitionSource code _Source code :=Source code Discrete_ofNbhsSource code.Build bool erefl.
HBSource code.instanceSource code DefinitionSource code _Source code :=Source code DiscreteUniform_ofNbhsSource code.Build bool.

Lemma bool_compactUsed by
  • mathcomp.analysis.cantor

Source code
: compact [set: bool].
Proof.
by rewrite setT_bool; apply/compactU; exact: compact_set1. Qed.

Local Lemma bool_nbhs_itvSource code (bSource code : bool) :
  nbhs b = filter_from
    (fun iSource code => itv_open_ends i /\ b \in i)
    (fun iSource code => [set` i]).
Proof.
rewrite nbhs_principalE eqEsubset; split=> U; first last.
  by case => V [_ Vb] VU; apply/principal_filterP/VU; apply: Vb.
move/principal_filterP; case: b.
  move=> Ut; exists `]false, +oo[; first split => //.
  by move=> r /=; rewrite in_itv /=; case: r.
move=> Ut; exists `]-oo, true[; first split => //.
by move=> r /=; rewrite in_itv /=; case: r.
Qed.

HBSource code.instanceSource code DefinitionSource code _Source code :=Source code Order_isNbhsSource code.Build _ bool bool_nbhs_itv.

HBSource code.instanceSource code DefinitionSource code _Source code {RSource code :Source code numDomainType}Source code :=
  @DiscretePseudoMetric_ofUniform.Build R bool.