awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Module: Mathlib.Topology.MetricSpace.Perfect
Goal:
α : Type u_1
inst : MetricSpace α
C : Set α
hC : Perfect C
hnonempty : C.Nonempty
inst_1 : CompleteSpace α
u : ℕ → ℝ≥0∞
upos' : ∀ (n : ℕ), Membership.mem (γ := Set ℝ≥0∞) (Ioo 0 1) (u n)
hu : Tendsto u atTop (nhds 0)
upos : ∀ (n : ℕ), 0 < u n
P : Type (max 0 u_1) := { E : Set α // Perfect E ∧ E.Nonempty }
C0 C1 : {C : Set α} → (hC : Perfect C) → (hnonempty : C.Nonempty) → {ε : ℝ≥0∞} → (hε : 0 < ε) → Set α
h0 :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Perfect (C0 (C := C) hC hnonempty hε) ∧
      (C0 (C := C) hC hnonempty hε).Nonempty ∧ C0 (C := C) hC hnonempty hε ⊆ C ∧ ediam (C0 (C := C) hC hnonempty hε) ≤ ε
h1 :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Perfect (C1 (C := C) hC hnonempty hε) ∧
      (C1 (C := C) hC hnonempty hε).Nonempty ∧ C1 (C := C) hC hnonempty hε ⊆ C ∧ ediam (C1 (C := C) hC hnonempty hε) ≤ ε
hdisj :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Disjoint (C0 (C := C) hC hnonempty hε) (C1 (C := C) hC hnonempty hε)
DP : List Bool → P :=
  fun (l : List Bool) ↦
    List.rec (motive := fun (l : List Bool) ↦ P) (Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty) C ⋯)
      (fun (a : Bool) (l : List Bool) (ih : P) ↦
        Bool.casesOn (motive := fun (t : Bool) ↦ (h : a = t) → P) a
          (fun (h : a = false) ↦
            Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty)
              (C0 (C := (↑ih : Set α)) ⋯ ⋯ (ε := u (l.length + 1)) ⋯) ⋯)
          (fun (h : a = true) ↦
            Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty)
              (C1 (C := (↑ih : Set α)) ⋯ ⋯ (ε := u (l.length + 1)) ⋯) ⋯)
          ⋯)
      l
D : List Bool → Set α := fun (l : List Bool) ↦ (↑(DP l) : Set α)
hanti : ClosureAntitone D
hdiam : VanishingDiam D
l : List Bool
hab : false ≠ false
⊢ Disjoint (D (false :: l)) (D (false :: l))

Tactic:
try contradiction
-- Module: Mathlib.Topology.MetricSpace.Perfect
Goal:
α : Type u_1
inst : MetricSpace α
C : Set α
hC : Perfect C
hnonempty : C.Nonempty
inst_1 : CompleteSpace α
u : ℕ → ℝ≥0∞
upos' : ∀ (n : ℕ), Membership.mem (γ := Set ℝ≥0∞) (Ioo 0 1) (u n)
hu : Tendsto u atTop (nhds 0)
upos : ∀ (n : ℕ), 0 < u n
P : Type (max 0 u_1) := { E : Set α // Perfect E ∧ E.Nonempty }
C0 C1 : {C : Set α} → (hC : Perfect C) → (hnonempty : C.Nonempty) → {ε : ℝ≥0∞} → (hε : 0 < ε) → Set α
h0 :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Perfect (C0 (C := C) hC hnonempty hε) ∧
      (C0 (C := C) hC hnonempty hε).Nonempty ∧ C0 (C := C) hC hnonempty hε ⊆ C ∧ ediam (C0 (C := C) hC hnonempty hε) ≤ ε
h1 :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Perfect (C1 (C := C) hC hnonempty hε) ∧
      (C1 (C := C) hC hnonempty hε).Nonempty ∧ C1 (C := C) hC hnonempty hε ⊆ C ∧ ediam (C1 (C := C) hC hnonempty hε) ≤ ε
hdisj :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Disjoint (C0 (C := C) hC hnonempty hε) (C1 (C := C) hC hnonempty hε)
DP : List Bool → P :=
  fun (l : List Bool) ↦
    List.rec (motive := fun (l : List Bool) ↦ P) (Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty) C ⋯)
      (fun (a : Bool) (l : List Bool) (ih : P) ↦
        Bool.casesOn (motive := fun (t : Bool) ↦ (h : a = t) → P) a
          (fun (h : a = false) ↦
            Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty)
              (C0 (C := (↑ih : Set α)) ⋯ ⋯ (ε := u (l.length + 1)) ⋯) ⋯)
          (fun (h : a = true) ↦
            Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty)
              (C1 (C := (↑ih : Set α)) ⋯ ⋯ (ε := u (l.length + 1)) ⋯) ⋯)
          ⋯)
      l
D : List Bool → Set α := fun (l : List Bool) ↦ (↑(DP l) : Set α)
hanti : ClosureAntitone D
hdiam : VanishingDiam D
l : List Bool
hab : true ≠ true
⊢ Disjoint (D (true :: l)) (D (true :: l))

Tactic:
contradiction
-- Module: Mathlib.Topology.MetricSpace.Perfect
Goal:
α : Type u_1
inst : MetricSpace α
C : Set α
hC : Perfect C
hnonempty : C.Nonempty
inst_1 : CompleteSpace α
u : ℕ → ℝ≥0∞
upos' : ∀ (n : ℕ), Membership.mem (γ := Set ℝ≥0∞) (Ioo 0 1) (u n)
hu : Tendsto u atTop (nhds 0)
upos : ∀ (n : ℕ), 0 < u n
P : Type (max 0 u_1) := { E : Set α // Perfect E ∧ E.Nonempty }
C0 C1 : {C : Set α} → (hC : Perfect C) → (hnonempty : C.Nonempty) → {ε : ℝ≥0∞} → (hε : 0 < ε) → Set α
h0 :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Perfect (C0 (C := C) hC hnonempty hε) ∧
      (C0 (C := C) hC hnonempty hε).Nonempty ∧ C0 (C := C) hC hnonempty hε ⊆ C ∧ ediam (C0 (C := C) hC hnonempty hε) ≤ ε
h1 :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Perfect (C1 (C := C) hC hnonempty hε) ∧
      (C1 (C := C) hC hnonempty hε).Nonempty ∧ C1 (C := C) hC hnonempty hε ⊆ C ∧ ediam (C1 (C := C) hC hnonempty hε) ≤ ε
hdisj :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Disjoint (C0 (C := C) hC hnonempty hε) (C1 (C := C) hC hnonempty hε)
DP : List Bool → P :=
  fun (l : List Bool) ↦
    List.rec (motive := fun (l : List Bool) ↦ P) (Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty) C ⋯)
      (fun (a : Bool) (l : List Bool) (ih : P) ↦
        Bool.casesOn (motive := fun (t : Bool) ↦ (h : a = t) → P) a
          (fun (h : a = false) ↦
            Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty)
              (C0 (C := (↑ih : Set α)) ⋯ ⋯ (ε := u (l.length + 1)) ⋯) ⋯)
          (fun (h : a = true) ↦
            Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty)
              (C1 (C := (↑ih : Set α)) ⋯ ⋯ (ε := u (l.length + 1)) ⋯) ⋯)
          ⋯)
      l
D : List Bool → Set α := fun (l : List Bool) ↦ (↑(DP l) : Set α)
hanti : ClosureAntitone D
hdiam : VanishingDiam D
l : List Bool
hab : true ≠ true
⊢ Disjoint (D (true :: l)) (D (true :: l))

Tactic:
try contradiction
-- Module: Mathlib.Topology.MetricSpace.Perfect
Goal:
α : Type u_1
inst : MetricSpace α
C : Set α
hC : Perfect C
hnonempty : C.Nonempty
inst_1 : CompleteSpace α
u : ℕ → ℝ≥0∞
upos' : ∀ (n : ℕ), Membership.mem (γ := Set ℝ≥0∞) (Ioo 0 1) (u n)
hu : Tendsto u atTop (nhds 0)
upos : ∀ (n : ℕ), 0 < u n
P : Type (max 0 u_1) := { E : Set α // Perfect E ∧ E.Nonempty }
C0 C1 : {C : Set α} → (hC : Perfect C) → (hnonempty : C.Nonempty) → {ε : ℝ≥0∞} → (hε : 0 < ε) → Set α
h0 :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Perfect (C0 (C := C) hC hnonempty hε) ∧
      (C0 (C := C) hC hnonempty hε).Nonempty ∧ C0 (C := C) hC hnonempty hε ⊆ C ∧ ediam (C0 (C := C) hC hnonempty hε) ≤ ε
h1 :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Perfect (C1 (C := C) hC hnonempty hε) ∧
      (C1 (C := C) hC hnonempty hε).Nonempty ∧ C1 (C := C) hC hnonempty hε ⊆ C ∧ ediam (C1 (C := C) hC hnonempty hε) ≤ ε
hdisj :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Disjoint (C0 (C := C) hC hnonempty hε) (C1 (C := C) hC hnonempty hε)
DP : List Bool → P :=
  fun (l : List Bool) ↦
    List.rec (motive := fun (l : List Bool) ↦ P) (Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty) C ⋯)
      (fun (a : Bool) (l : List Bool) (ih : P) ↦
        Bool.casesOn (motive := fun (t : Bool) ↦ (h : a = t) → P) a
          (fun (h : a = false) ↦
            Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty)
              (C0 (C := (↑ih : Set α)) ⋯ ⋯ (ε := u (l.length + 1)) ⋯) ⋯)
          (fun (h : a = true) ↦
            Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty)
              (C1 (C := (↑ih : Set α)) ⋯ ⋯ (ε := u (l.length + 1)) ⋯) ⋯)
          ⋯)
      l
D : List Bool → Set α := fun (l : List Bool) ↦ (↑(DP l) : Set α)
hanti : ClosureAntitone D
hdiam : VanishingDiam D
l : List Bool
hab : false ≠ true
⊢ Disjoint (D (false :: l)) (D (true :: l))

Tactic:
hdisj _ _ _
-- Module: Mathlib.Topology.MetricSpace.Perfect
Goal:
α : Type u_1
inst : MetricSpace α
C : Set α
hC : Perfect C
hnonempty : C.Nonempty
inst_1 : CompleteSpace α
u : ℕ → ℝ≥0∞
upos' : ∀ (n : ℕ), Membership.mem (γ := Set ℝ≥0∞) (Ioo 0 1) (u n)
hu : Tendsto u atTop (nhds 0)
upos : ∀ (n : ℕ), 0 < u n
P : Type (max 0 u_1) := { E : Set α // Perfect E ∧ E.Nonempty }
C0 C1 : {C : Set α} → (hC : Perfect C) → (hnonempty : C.Nonempty) → {ε : ℝ≥0∞} → (hε : 0 < ε) → Set α
h0 :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Perfect (C0 (C := C) hC hnonempty hε) ∧
      (C0 (C := C) hC hnonempty hε).Nonempty ∧ C0 (C := C) hC hnonempty hε ⊆ C ∧ ediam (C0 (C := C) hC hnonempty hε) ≤ ε
h1 :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Perfect (C1 (C := C) hC hnonempty hε) ∧
      (C1 (C := C) hC hnonempty hε).Nonempty ∧ C1 (C := C) hC hnonempty hε ⊆ C ∧ ediam (C1 (C := C) hC hnonempty hε) ≤ ε
hdisj :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Disjoint (C0 (C := C) hC hnonempty hε) (C1 (C := C) hC hnonempty hε)
DP : List Bool → P :=
  fun (l : List Bool) ↦
    List.rec (motive := fun (l : List Bool) ↦ P) (Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty) C ⋯)
      (fun (a : Bool) (l : List Bool) (ih : P) ↦
        Bool.casesOn (motive := fun (t : Bool) ↦ (h : a = t) → P) a
          (fun (h : a = false) ↦
            Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty)
              (C0 (C := (↑ih : Set α)) ⋯ ⋯ (ε := u (l.length + 1)) ⋯) ⋯)
          (fun (h : a = true) ↦
            Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty)
              (C1 (C := (↑ih : Set α)) ⋯ ⋯ (ε := u (l.length + 1)) ⋯) ⋯)
          ⋯)
      l
D : List Bool → Set α := fun (l : List Bool) ↦ (↑(DP l) : Set α)
hanti : ClosureAntitone D
hdiam : VanishingDiam D
l : List Bool
hab : false ≠ true
⊢ Disjoint (D (false :: l)) (D (true :: l))

Tactic:
exact hdisj _ _ _
-- Module: Mathlib.Topology.MetricSpace.Perfect
Goal:
α : Type u_1
inst : MetricSpace α
C : Set α
hC : Perfect C
hnonempty : C.Nonempty
inst_1 : CompleteSpace α
u : ℕ → ℝ≥0∞
upos' : ∀ (n : ℕ), Membership.mem (γ := Set ℝ≥0∞) (Ioo 0 1) (u n)
hu : Tendsto u atTop (nhds 0)
upos : ∀ (n : ℕ), 0 < u n
P : Type (max 0 u_1) := { E : Set α // Perfect E ∧ E.Nonempty }
C0 C1 : {C : Set α} → (hC : Perfect C) → (hnonempty : C.Nonempty) → {ε : ℝ≥0∞} → (hε : 0 < ε) → Set α
h0 :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Perfect (C0 (C := C) hC hnonempty hε) ∧
      (C0 (C := C) hC hnonempty hε).Nonempty ∧ C0 (C := C) hC hnonempty hε ⊆ C ∧ ediam (C0 (C := C) hC hnonempty hε) ≤ ε
h1 :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Perfect (C1 (C := C) hC hnonempty hε) ∧
      (C1 (C := C) hC hnonempty hε).Nonempty ∧ C1 (C := C) hC hnonempty hε ⊆ C ∧ ediam (C1 (C := C) hC hnonempty hε) ≤ ε
hdisj :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Disjoint (C0 (C := C) hC hnonempty hε) (C1 (C := C) hC hnonempty hε)
DP : List Bool → P :=
  fun (l : List Bool) ↦
    List.rec (motive := fun (l : List Bool) ↦ P) (Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty) C ⋯)
      (fun (a : Bool) (l : List Bool) (ih : P) ↦
        Bool.casesOn (motive := fun (t : Bool) ↦ (h : a = t) → P) a
          (fun (h : a = false) ↦
            Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty)
              (C0 (C := (↑ih : Set α)) ⋯ ⋯ (ε := u (l.length + 1)) ⋯) ⋯)
          (fun (h : a = true) ↦
            Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty)
              (C1 (C := (↑ih : Set α)) ⋯ ⋯ (ε := u (l.length + 1)) ⋯) ⋯)
          ⋯)
      l
D : List Bool → Set α := fun (l : List Bool) ↦ (↑(DP l) : Set α)
hanti : ClosureAntitone D
hdiam : VanishingDiam D
l : List Bool
hab : true ≠ false
⊢ Disjoint (D (true :: l)) (D (false :: l))

Tactic:
(hdisj _ _ _).symm

Premises used: Disjoint.symm
-- Module: Mathlib.Topology.MetricSpace.Perfect
Goal:
α : Type u_1
inst : MetricSpace α
C : Set α
hC : Perfect C
hnonempty : C.Nonempty
inst_1 : CompleteSpace α
u : ℕ → ℝ≥0∞
upos' : ∀ (n : ℕ), Membership.mem (γ := Set ℝ≥0∞) (Ioo 0 1) (u n)
hu : Tendsto u atTop (nhds 0)
upos : ∀ (n : ℕ), 0 < u n
P : Type (max 0 u_1) := { E : Set α // Perfect E ∧ E.Nonempty }
C0 C1 : {C : Set α} → (hC : Perfect C) → (hnonempty : C.Nonempty) → {ε : ℝ≥0∞} → (hε : 0 < ε) → Set α
h0 :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Perfect (C0 (C := C) hC hnonempty hε) ∧
      (C0 (C := C) hC hnonempty hε).Nonempty ∧ C0 (C := C) hC hnonempty hε ⊆ C ∧ ediam (C0 (C := C) hC hnonempty hε) ≤ ε
h1 :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Perfect (C1 (C := C) hC hnonempty hε) ∧
      (C1 (C := C) hC hnonempty hε).Nonempty ∧ C1 (C := C) hC hnonempty hε ⊆ C ∧ ediam (C1 (C := C) hC hnonempty hε) ≤ ε
hdisj :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Disjoint (C0 (C := C) hC hnonempty hε) (C1 (C := C) hC hnonempty hε)
DP : List Bool → P :=
  fun (l : List Bool) ↦
    List.rec (motive := fun (l : List Bool) ↦ P) (Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty) C ⋯)
      (fun (a : Bool) (l : List Bool) (ih : P) ↦
        Bool.casesOn (motive := fun (t : Bool) ↦ (h : a = t) → P) a
          (fun (h : a = false) ↦
            Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty)
              (C0 (C := (↑ih : Set α)) ⋯ ⋯ (ε := u (l.length + 1)) ⋯) ⋯)
          (fun (h : a = true) ↦
            Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty)
              (C1 (C := (↑ih : Set α)) ⋯ ⋯ (ε := u (l.length + 1)) ⋯) ⋯)
          ⋯)
      l
D : List Bool → Set α := fun (l : List Bool) ↦ (↑(DP l) : Set α)
hanti : ClosureAntitone D
hdiam : VanishingDiam D
l : List Bool
hab : true ≠ false
⊢ Disjoint (D (true :: l)) (D (false :: l))

Tactic:
exact (hdisj _ _ _).symm

Premises used: Disjoint.symm
-- Module: Mathlib.Topology.MetricSpace.Perfect
Goal:
α : Type u_1
inst : MetricSpace α
C : Set α
hC : Perfect C
hnonempty : C.Nonempty
inst_1 : CompleteSpace α
u : ℕ → ℝ≥0∞
upos' : ∀ (n : ℕ), Membership.mem (γ := Set ℝ≥0∞) (Ioo 0 1) (u n)
hu : Tendsto u atTop (nhds 0)
upos : ∀ (n : ℕ), 0 < u n
P : Type (max 0 u_1) := { E : Set α // Perfect E ∧ E.Nonempty }
C0 C1 : {C : Set α} → (hC : Perfect C) → (hnonempty : C.Nonempty) → {ε : ℝ≥0∞} → (hε : 0 < ε) → Set α
h0 :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Perfect (C0 (C := C) hC hnonempty hε) ∧
      (C0 (C := C) hC hnonempty hε).Nonempty ∧ C0 (C := C) hC hnonempty hε ⊆ C ∧ ediam (C0 (C := C) hC hnonempty hε) ≤ ε
h1 :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Perfect (C1 (C := C) hC hnonempty hε) ∧
      (C1 (C := C) hC hnonempty hε).Nonempty ∧ C1 (C := C) hC hnonempty hε ⊆ C ∧ ediam (C1 (C := C) hC hnonempty hε) ≤ ε
hdisj :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Disjoint (C0 (C := C) hC hnonempty hε) (C1 (C := C) hC hnonempty hε)
DP : List Bool → P :=
  fun (l : List Bool) ↦
    List.rec (motive := fun (l : List Bool) ↦ P) (Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty) C ⋯)
      (fun (a : Bool) (l : List Bool) (ih : P) ↦
        Bool.casesOn (motive := fun (t : Bool) ↦ (h : a = t) → P) a
          (fun (h : a = false) ↦
            Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty)
              (C0 (C := (↑ih : Set α)) ⋯ ⋯ (ε := u (l.length + 1)) ⋯) ⋯)
          (fun (h : a = true) ↦
            Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty)
              (C1 (C := (↑ih : Set α)) ⋯ ⋯ (ε := u (l.length + 1)) ⋯) ⋯)
          ⋯)
      l
D : List Bool → Set α := fun (l : List Bool) ↦ (↑(DP l) : Set α)
hanti : ClosureAntitone D
hdiam : VanishingDiam D
⊢ CantorScheme.Disjoint D

Tactic:
have hdisj' : CantorScheme.Disjoint D := by
    rintro l (a | a) (b | b) hab <;> try contradiction
    · exact hdisj _ _ _
    exact (hdisj _ _ _).symm
-- Module: Mathlib.Topology.MetricSpace.Perfect
Goal:
α : Type u_1
inst : MetricSpace α
C : Set α
hC : Perfect C
hnonempty : C.Nonempty
inst_1 : CompleteSpace α
u : ℕ → ℝ≥0∞
upos' : ∀ (n : ℕ), Membership.mem (γ := Set ℝ≥0∞) (Ioo 0 1) (u n)
hu : Tendsto u atTop (nhds 0)
upos : ∀ (n : ℕ), 0 < u n
P : Type (max 0 u_1) := { E : Set α // Perfect E ∧ E.Nonempty }
C0 C1 : {C : Set α} → (hC : Perfect C) → (hnonempty : C.Nonempty) → {ε : ℝ≥0∞} → (hε : 0 < ε) → Set α
h0 :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Perfect (C0 (C := C) hC hnonempty hε) ∧
      (C0 (C := C) hC hnonempty hε).Nonempty ∧ C0 (C := C) hC hnonempty hε ⊆ C ∧ ediam (C0 (C := C) hC hnonempty hε) ≤ ε
h1 :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Perfect (C1 (C := C) hC hnonempty hε) ∧
      (C1 (C := C) hC hnonempty hε).Nonempty ∧ C1 (C := C) hC hnonempty hε ⊆ C ∧ ediam (C1 (C := C) hC hnonempty hε) ≤ ε
hdisj :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Disjoint (C0 (C := C) hC hnonempty hε) (C1 (C := C) hC hnonempty hε)
DP : List Bool → P :=
  fun (l : List Bool) ↦
    List.rec (motive := fun (l : List Bool) ↦ P) (Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty) C ⋯)
      (fun (a : Bool) (l : List Bool) (ih : P) ↦
        Bool.casesOn (motive := fun (t : Bool) ↦ (h : a = t) → P) a
          (fun (h : a = false) ↦
            Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty)
              (C0 (C := (↑ih : Set α)) ⋯ ⋯ (ε := u (l.length + 1)) ⋯) ⋯)
          (fun (h : a = true) ↦
            Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty)
              (C1 (C := (↑ih : Set α)) ⋯ ⋯ (ε := u (l.length + 1)) ⋯) ⋯)
          ⋯)
      l
D : List Bool → Set α := fun (l : List Bool) ↦ (↑(DP l) : Set α)
hanti : ClosureAntitone D
hdiam : VanishingDiam D
hdisj' : CantorScheme.Disjoint D
x : ℕ → Bool
rw : Membership.mem (γ := Set (ℕ → Bool)) univ x
⊢ x ∈ (inducedMap D).fst (β := fun (s : Set (ℕ → Bool)) ↦ (↑s : Type) → α)

Tactic:
rw [hanti.map_of_vanishingDiam hdiam fun l => (DP l).property.2]

Premises used: CantorScheme.ClosureAntitone.map_of_vanishingDiam, And.right, Subtype.property
-- Module: Mathlib.Topology.MetricSpace.Perfect
Goal:
α : Type u_1
inst : MetricSpace α
C : Set α
hC : Perfect C
hnonempty : C.Nonempty
inst_1 : CompleteSpace α
u : ℕ → ℝ≥0∞
upos' : ∀ (n : ℕ), Membership.mem (γ := Set ℝ≥0∞) (Ioo 0 1) (u n)
hu : Tendsto u atTop (nhds 0)
upos : ∀ (n : ℕ), 0 < u n
P : Type (max 0 u_1) := { E : Set α // Perfect E ∧ E.Nonempty }
C0 C1 : {C : Set α} → (hC : Perfect C) → (hnonempty : C.Nonempty) → {ε : ℝ≥0∞} → (hε : 0 < ε) → Set α
h0 :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Perfect (C0 (C := C) hC hnonempty hε) ∧
      (C0 (C := C) hC hnonempty hε).Nonempty ∧ C0 (C := C) hC hnonempty hε ⊆ C ∧ ediam (C0 (C := C) hC hnonempty hε) ≤ ε
h1 :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Perfect (C1 (C := C) hC hnonempty hε) ∧
      (C1 (C := C) hC hnonempty hε).Nonempty ∧ C1 (C := C) hC hnonempty hε ⊆ C ∧ ediam (C1 (C := C) hC hnonempty hε) ≤ ε
hdisj :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Disjoint (C0 (C := C) hC hnonempty hε) (C1 (C := C) hC hnonempty hε)
DP : List Bool → P :=
  fun (l : List Bool) ↦
    List.rec (motive := fun (l : List Bool) ↦ P) (Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty) C ⋯)
      (fun (a : Bool) (l : List Bool) (ih : P) ↦
        Bool.casesOn (motive := fun (t : Bool) ↦ (h : a = t) → P) a
          (fun (h : a = false) ↦
            Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty)
              (C0 (C := (↑ih : Set α)) ⋯ ⋯ (ε := u (l.length + 1)) ⋯) ⋯)
          (fun (h : a = true) ↦
            Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty)
              (C1 (C := (↑ih : Set α)) ⋯ ⋯ (ε := u (l.length + 1)) ⋯) ⋯)
          ⋯)
      l
D : List Bool → Set α := fun (l : List Bool) ↦ (↑(DP l) : Set α)
hanti : ClosureAntitone D
hdiam : VanishingDiam D
hdisj' : CantorScheme.Disjoint D
x : ℕ → Bool
⊢ Membership.mem (γ := Set (ℕ → Bool)) univ x

Tactic:
apply mem_univ

Premises used: Set.mem_univ
-- Module: Mathlib.Topology.MetricSpace.Perfect
Goal:
α : Type u_1
inst : MetricSpace α
C : Set α
hC : Perfect C
hnonempty : C.Nonempty
inst_1 : CompleteSpace α
u : ℕ → ℝ≥0∞
upos' : ∀ (n : ℕ), Membership.mem (γ := Set ℝ≥0∞) (Ioo 0 1) (u n)
hu : Tendsto u atTop (nhds 0)
upos : ∀ (n : ℕ), 0 < u n
P : Type (max 0 u_1) := { E : Set α // Perfect E ∧ E.Nonempty }
C0 C1 : {C : Set α} → (hC : Perfect C) → (hnonempty : C.Nonempty) → {ε : ℝ≥0∞} → (hε : 0 < ε) → Set α
h0 :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Perfect (C0 (C := C) hC hnonempty hε) ∧
      (C0 (C := C) hC hnonempty hε).Nonempty ∧ C0 (C := C) hC hnonempty hε ⊆ C ∧ ediam (C0 (C := C) hC hnonempty hε) ≤ ε
h1 :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Perfect (C1 (C := C) hC hnonempty hε) ∧
      (C1 (C := C) hC hnonempty hε).Nonempty ∧ C1 (C := C) hC hnonempty hε ⊆ C ∧ ediam (C1 (C := C) hC hnonempty hε) ≤ ε
hdisj :
  ∀ {C : Set α} (hC : Perfect C) (hnonempty : C.Nonempty) {ε : ℝ≥0∞} (hε : 0 < ε),
    Disjoint (C0 (C := C) hC hnonempty hε) (C1 (C := C) hC hnonempty hε)
DP : List Bool → P :=
  fun (l : List Bool) ↦
    List.rec (motive := fun (l : List Bool) ↦ P) (Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty) C ⋯)
      (fun (a : Bool) (l : List Bool) (ih : P) ↦
        Bool.casesOn (motive := fun (t : Bool) ↦ (h : a = t) → P) a
          (fun (h : a = false) ↦
            Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty)
              (C0 (C := (↑ih : Set α)) ⋯ ⋯ (ε := u (l.length + 1)) ⋯) ⋯)
          (fun (h : a = true) ↦
            Subtype.mk (p := fun (E : Set α) ↦ Perfect E ∧ E.Nonempty)
              (C1 (C := (↑ih : Set α)) ⋯ ⋯ (ε := u (l.length + 1)) ⋯) ⋯)
          ⋯)
      l
D : List Bool → Set α := fun (l : List Bool) ↦ (↑(DP l) : Set α)
hanti : ClosureAntitone D
hdiam : VanishingDiam D
hdisj' : CantorScheme.Disjoint D
⊢ ∀ {x : ℕ → Bool}, x ∈ (inducedMap D).fst (β := fun (s : Set (ℕ → Bool)) ↦ (↑s : Type) → α)

Tactic:
have hdom : ∀ {x : ℕ → Bool}, x ∈ (inducedMap D).1 := fun {x} => by
    rw [hanti.map_of_vanishingDiam hdiam fun l => (DP l).property.2]
    apply mem_univ