topology.sheaves.punit
⟷
Mathlib.Topology.Sheaves.PUnit
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,7 +3,7 @@ Copyright (c) 2022 Jujian Zhang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jujian Zhang
-/
-import Mathbin.Topology.Sheaves.SheafCondition.Sites
+import Topology.Sheaves.SheafCondition.Sites
#align_import topology.sheaves.punit from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -51,18 +51,18 @@ theorem isSheaf_iff_isTerminal_of_indiscrete {X : TopCat.{w}} (hind : X.str =
#align Top.presheaf.is_sheaf_iff_is_terminal_of_indiscrete TopCat.Presheaf.isSheaf_iff_isTerminal_of_indiscrete
-/
-#print TopCat.Presheaf.isSheaf_on_pUnit_of_isTerminal /-
-theorem isSheaf_on_pUnit_of_isTerminal (F : Presheaf C (TopCat.of PUnit))
+#print TopCat.Presheaf.isSheaf_on_punit_of_isTerminal /-
+theorem isSheaf_on_punit_of_isTerminal (F : Presheaf C (TopCat.of PUnit))
(it : IsTerminal <| F.obj <| op ⊥) : F.IsSheaf :=
isSheaf_of_isTerminal_of_indiscrete (@Subsingleton.elim (TopologicalSpace PUnit) _ _ _) F it
-#align Top.presheaf.is_sheaf_on_punit_of_is_terminal TopCat.Presheaf.isSheaf_on_pUnit_of_isTerminal
+#align Top.presheaf.is_sheaf_on_punit_of_is_terminal TopCat.Presheaf.isSheaf_on_punit_of_isTerminal
-/
-#print TopCat.Presheaf.isSheaf_on_pUnit_iff_isTerminal /-
-theorem isSheaf_on_pUnit_iff_isTerminal (F : Presheaf C (TopCat.of PUnit)) :
+#print TopCat.Presheaf.isSheaf_on_punit_iff_isTerminal /-
+theorem isSheaf_on_punit_iff_isTerminal (F : Presheaf C (TopCat.of PUnit)) :
F.IsSheaf ↔ Nonempty (IsTerminal <| F.obj <| op ⊥) :=
- ⟨fun h => ⟨Sheaf.isTerminalOfEmpty ⟨F, h⟩⟩, fun ⟨it⟩ => isSheaf_on_pUnit_of_isTerminal F it⟩
-#align Top.presheaf.is_sheaf_on_punit_iff_is_terminal TopCat.Presheaf.isSheaf_on_pUnit_iff_isTerminal
+ ⟨fun h => ⟨Sheaf.isTerminalOfEmpty ⟨F, h⟩⟩, fun ⟨it⟩ => isSheaf_on_punit_of_isTerminal F it⟩
+#align Top.presheaf.is_sheaf_on_punit_iff_is_terminal TopCat.Presheaf.isSheaf_on_punit_iff_isTerminal
-/
end TopCat.Presheaf
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,14 +2,11 @@
Copyright (c) 2022 Jujian Zhang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jujian Zhang
-
-! This file was ported from Lean 3 source module topology.sheaves.punit
-! leanprover-community/mathlib commit 38df578a6450a8c5142b3727e3ae894c2300cae0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Topology.Sheaves.SheafCondition.Sites
+#align_import topology.sheaves.punit from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
+
/-!
# Presheaves on punit
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -28,6 +28,7 @@ open CategoryTheory CategoryTheory.Limits TopCat Opposite
variable {C : Type u} [Category.{v} C]
+#print TopCat.Presheaf.isSheaf_of_isTerminal_of_indiscrete /-
theorem isSheaf_of_isTerminal_of_indiscrete {X : TopCat.{w}} (hind : X.str = ⊤) (F : Presheaf C X)
(it : IsTerminal <| F.obj <| op ⊥) : F.IsSheaf := fun c U s hs =>
by
@@ -43,22 +44,29 @@ theorem isSheaf_of_isTerminal_of_indiscrete {X : TopCat.{w}} (hind : X.str = ⊤
obtain rfl | rfl := U.eq_bot_or_top hind
· cases hm; · convert hf
#align Top.presheaf.is_sheaf_of_is_terminal_of_indiscrete TopCat.Presheaf.isSheaf_of_isTerminal_of_indiscrete
+-/
+#print TopCat.Presheaf.isSheaf_iff_isTerminal_of_indiscrete /-
theorem isSheaf_iff_isTerminal_of_indiscrete {X : TopCat.{w}} (hind : X.str = ⊤)
(F : Presheaf C X) : F.IsSheaf ↔ Nonempty (IsTerminal <| F.obj <| op ⊥) :=
⟨fun h => ⟨Sheaf.isTerminalOfEmpty ⟨F, h⟩⟩, fun ⟨it⟩ =>
isSheaf_of_isTerminal_of_indiscrete hind F it⟩
#align Top.presheaf.is_sheaf_iff_is_terminal_of_indiscrete TopCat.Presheaf.isSheaf_iff_isTerminal_of_indiscrete
+-/
+#print TopCat.Presheaf.isSheaf_on_pUnit_of_isTerminal /-
theorem isSheaf_on_pUnit_of_isTerminal (F : Presheaf C (TopCat.of PUnit))
(it : IsTerminal <| F.obj <| op ⊥) : F.IsSheaf :=
isSheaf_of_isTerminal_of_indiscrete (@Subsingleton.elim (TopologicalSpace PUnit) _ _ _) F it
#align Top.presheaf.is_sheaf_on_punit_of_is_terminal TopCat.Presheaf.isSheaf_on_pUnit_of_isTerminal
+-/
+#print TopCat.Presheaf.isSheaf_on_pUnit_iff_isTerminal /-
theorem isSheaf_on_pUnit_iff_isTerminal (F : Presheaf C (TopCat.of PUnit)) :
F.IsSheaf ↔ Nonempty (IsTerminal <| F.obj <| op ⊥) :=
⟨fun h => ⟨Sheaf.isTerminalOfEmpty ⟨F, h⟩⟩, fun ⟨it⟩ => isSheaf_on_pUnit_of_isTerminal F it⟩
#align Top.presheaf.is_sheaf_on_punit_iff_is_terminal TopCat.Presheaf.isSheaf_on_pUnit_iff_isTerminal
+-/
end TopCat.Presheaf
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -28,9 +28,6 @@ open CategoryTheory CategoryTheory.Limits TopCat Opposite
variable {C : Type u} [Category.{v} C]
-/- warning: Top.presheaf.is_sheaf_of_is_terminal_of_indiscrete -> TopCat.Presheaf.isSheaf_of_isTerminal_of_indiscrete is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align Top.presheaf.is_sheaf_of_is_terminal_of_indiscrete TopCat.Presheaf.isSheaf_of_isTerminal_of_indiscreteₓ'. -/
theorem isSheaf_of_isTerminal_of_indiscrete {X : TopCat.{w}} (hind : X.str = ⊤) (F : Presheaf C X)
(it : IsTerminal <| F.obj <| op ⊥) : F.IsSheaf := fun c U s hs =>
by
@@ -47,32 +44,17 @@ theorem isSheaf_of_isTerminal_of_indiscrete {X : TopCat.{w}} (hind : X.str = ⊤
· cases hm; · convert hf
#align Top.presheaf.is_sheaf_of_is_terminal_of_indiscrete TopCat.Presheaf.isSheaf_of_isTerminal_of_indiscrete
-/- warning: Top.presheaf.is_sheaf_iff_is_terminal_of_indiscrete -> TopCat.Presheaf.isSheaf_iff_isTerminal_of_indiscrete is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align Top.presheaf.is_sheaf_iff_is_terminal_of_indiscrete TopCat.Presheaf.isSheaf_iff_isTerminal_of_indiscreteₓ'. -/
theorem isSheaf_iff_isTerminal_of_indiscrete {X : TopCat.{w}} (hind : X.str = ⊤)
(F : Presheaf C X) : F.IsSheaf ↔ Nonempty (IsTerminal <| F.obj <| op ⊥) :=
⟨fun h => ⟨Sheaf.isTerminalOfEmpty ⟨F, h⟩⟩, fun ⟨it⟩ =>
isSheaf_of_isTerminal_of_indiscrete hind F it⟩
#align Top.presheaf.is_sheaf_iff_is_terminal_of_indiscrete TopCat.Presheaf.isSheaf_iff_isTerminal_of_indiscrete
-/- warning: Top.presheaf.is_sheaf_on_punit_of_is_terminal -> TopCat.Presheaf.isSheaf_on_pUnit_of_isTerminal is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (F : TopCat.Presheaf.{u3, u2, u1} C _inst_1 (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})), (CategoryTheory.Limits.IsTerminal.{u2, u1} C _inst_1 (CategoryTheory.Functor.obj.{u3, u2, u3, u1} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})))) (CategoryTheory.Category.opposite.{u3, u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (Preorder.smallCategory.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (PartialOrder.toPreorder.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (SetLike.partialOrder.{u3, u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopologicalSpace.Opens.setLike.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))))))) C _inst_1 F (Opposite.op.{succ u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (Bot.bot.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (CompleteLattice.toHasBot.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (TopologicalSpace.Opens.completeLattice.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})))))))) -> (TopCat.Presheaf.IsSheaf.{u3, u2, u1} C _inst_1 (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}) F)
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u2} C] (F : TopCat.Presheaf.{u1, u3, u2} C _inst_1 (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})), (CategoryTheory.Limits.IsTerminal.{u3, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u3, u1, u2} (Opposite.{succ u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (Opposite.{succ u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (Opposite.{succ u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))) (CategoryTheory.Category.opposite.{u1, u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (Preorder.smallCategory.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (PartialOrder.toPreorder.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (CompleteSemilatticeInf.toPartialOrder.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))))))))) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} C (CategoryTheory.Category.toCategoryStruct.{u3, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u1, u2} (Opposite.{succ u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))) (CategoryTheory.Category.opposite.{u1, u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (Preorder.smallCategory.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (PartialOrder.toPreorder.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (CompleteSemilatticeInf.toPartialOrder.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))))))) C _inst_1 F) (Opposite.op.{succ u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (Bot.bot.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (CompleteLattice.toBot.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))))))) -> (TopCat.Presheaf.IsSheaf.{u1, u3, u2} C _inst_1 (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}) F)
-Case conversion may be inaccurate. Consider using '#align Top.presheaf.is_sheaf_on_punit_of_is_terminal TopCat.Presheaf.isSheaf_on_pUnit_of_isTerminalₓ'. -/
theorem isSheaf_on_pUnit_of_isTerminal (F : Presheaf C (TopCat.of PUnit))
(it : IsTerminal <| F.obj <| op ⊥) : F.IsSheaf :=
isSheaf_of_isTerminal_of_indiscrete (@Subsingleton.elim (TopologicalSpace PUnit) _ _ _) F it
#align Top.presheaf.is_sheaf_on_punit_of_is_terminal TopCat.Presheaf.isSheaf_on_pUnit_of_isTerminal
-/- warning: Top.presheaf.is_sheaf_on_punit_iff_is_terminal -> TopCat.Presheaf.isSheaf_on_pUnit_iff_isTerminal is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (F : TopCat.Presheaf.{u3, u2, u1} C _inst_1 (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})), Iff (TopCat.Presheaf.IsSheaf.{u3, u2, u1} C _inst_1 (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}) F) (Nonempty.{max 1 (succ u1) (succ u2)} (CategoryTheory.Limits.IsTerminal.{u2, u1} C _inst_1 (CategoryTheory.Functor.obj.{u3, u2, u3, u1} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})))) (CategoryTheory.Category.opposite.{u3, u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (Preorder.smallCategory.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (PartialOrder.toPreorder.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (SetLike.partialOrder.{u3, u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopologicalSpace.Opens.setLike.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))))))) C _inst_1 F (Opposite.op.{succ u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (Bot.bot.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (CompleteLattice.toHasBot.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (TopologicalSpace.Opens.completeLattice.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})))))))))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u2} C] (F : TopCat.Presheaf.{u1, u3, u2} C _inst_1 (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})), Iff (TopCat.Presheaf.IsSheaf.{u1, u3, u2} C _inst_1 (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}) F) (Nonempty.{max (succ u2) (succ u3)} (CategoryTheory.Limits.IsTerminal.{u3, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u3, u1, u2} (Opposite.{succ u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (Opposite.{succ u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (Opposite.{succ u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))) (CategoryTheory.Category.opposite.{u1, u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (Preorder.smallCategory.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (PartialOrder.toPreorder.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (CompleteSemilatticeInf.toPartialOrder.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))))))))) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} C (CategoryTheory.Category.toCategoryStruct.{u3, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u1, u2} (Opposite.{succ u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))) (CategoryTheory.Category.opposite.{u1, u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (Preorder.smallCategory.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (PartialOrder.toPreorder.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (CompleteSemilatticeInf.toPartialOrder.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))))))) C _inst_1 F) (Opposite.op.{succ u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (Bot.bot.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (CompleteLattice.toBot.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))))))))
-Case conversion may be inaccurate. Consider using '#align Top.presheaf.is_sheaf_on_punit_iff_is_terminal TopCat.Presheaf.isSheaf_on_pUnit_iff_isTerminalₓ'. -/
theorem isSheaf_on_pUnit_iff_isTerminal (F : Presheaf C (TopCat.of PUnit)) :
F.IsSheaf ↔ Nonempty (IsTerminal <| F.obj <| op ⊥) :=
⟨fun h => ⟨Sheaf.isTerminalOfEmpty ⟨F, h⟩⟩, fun ⟨it⟩ => isSheaf_on_pUnit_of_isTerminal F it⟩
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -35,21 +35,16 @@ theorem isSheaf_of_isTerminal_of_indiscrete {X : TopCat.{w}} (hind : X.str = ⊤
(it : IsTerminal <| F.obj <| op ⊥) : F.IsSheaf := fun c U s hs =>
by
obtain rfl | hne := eq_or_ne U ⊥
- · intro _ _
- rw [@exists_unique_iff_exists _ ⟨fun _ _ => _⟩]
- · refine' ⟨it.from _, fun U hU hs => is_terminal.hom_ext _ _ _⟩
- rwa [le_bot_iff.1 hU.le]
+ · intro _ _; rw [@exists_unique_iff_exists _ ⟨fun _ _ => _⟩]
+ · refine' ⟨it.from _, fun U hU hs => is_terminal.hom_ext _ _ _⟩; rwa [le_bot_iff.1 hU.le]
· apply it.hom_ext
- · convert presieve.is_sheaf_for_top_sieve _
- rw [← sieve.id_mem_iff_eq_top]
- have := (U.eq_bot_or_top hind).resolve_left hne
- subst this
+ · convert presieve.is_sheaf_for_top_sieve _; rw [← sieve.id_mem_iff_eq_top]
+ have := (U.eq_bot_or_top hind).resolve_left hne; subst this
obtain he | ⟨⟨x⟩⟩ := isEmpty_or_nonempty X
· exact (hne <| SetLike.ext'_iff.2 <| Set.univ_eq_empty_iff.2 he).elim
obtain ⟨U, f, hf, hm⟩ := hs x trivial
obtain rfl | rfl := U.eq_bot_or_top hind
- · cases hm
- · convert hf
+ · cases hm; · convert hf
#align Top.presheaf.is_sheaf_of_is_terminal_of_indiscrete TopCat.Presheaf.isSheaf_of_isTerminal_of_indiscrete
/- warning: Top.presheaf.is_sheaf_iff_is_terminal_of_indiscrete -> TopCat.Presheaf.isSheaf_iff_isTerminal_of_indiscrete is a dubious translation:
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -29,10 +29,7 @@ open CategoryTheory CategoryTheory.Limits TopCat Opposite
variable {C : Type u} [Category.{v} C]
/- warning: Top.presheaf.is_sheaf_of_is_terminal_of_indiscrete -> TopCat.Presheaf.isSheaf_of_isTerminal_of_indiscrete is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {X : TopCat.{u3}}, (Eq.{succ u3} (autoParamₓ.{succ u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 95 (OfNat.mk.{0} Nat 95 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 101 (OfNat.mk.{0} Nat 101 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous))) (CategoryTheory.Bundled.str.{u3, u3} TopologicalSpace.{u3} X) (Top.top.{u3} (autoParamₓ.{succ u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 95 (OfNat.mk.{0} Nat 95 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 101 (OfNat.mk.{0} Nat 101 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous))) (CompleteLattice.toHasTop.{u3} (autoParamₓ.{succ u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 95 (OfNat.mk.{0} Nat 95 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 101 (OfNat.mk.{0} Nat 101 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous))) (TopologicalSpace.completeLattice.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X))))) -> (forall (F : TopCat.Presheaf.{u3, u2, u1} C _inst_1 X), (CategoryTheory.Limits.IsTerminal.{u2, u1} C _inst_1 (CategoryTheory.Functor.obj.{u3, u2, u3, u1} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X))) (CategoryTheory.Category.opposite.{u3, u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (Preorder.smallCategory.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (PartialOrder.toPreorder.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (SetLike.partialOrder.{u3, u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopologicalSpace.Opens.setLike.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)))))) C _inst_1 F (Opposite.op.{succ u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (Bot.bot.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (CompleteLattice.toHasBot.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (TopologicalSpace.Opens.completeLattice.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X))))))) -> (TopCat.Presheaf.IsSheaf.{u3, u2, u1} C _inst_1 X F))
-but is expected to have type
- forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {X : TopCat.{u3}}, (Eq.{succ u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (CategoryTheory.Bundled.str.{u3, u3} TopologicalSpace.{u3} X) (Top.top.{u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (CompleteLattice.toTop.{u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X))))) -> (forall (F : TopCat.Presheaf.{u3, u2, u1} C _inst_1 X), (CategoryTheory.Limits.IsTerminal.{u2, u1} C _inst_1 (Prefunctor.obj.{succ u3, succ u2, u3, u1} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))) (CategoryTheory.CategoryStruct.toQuiver.{u3, u3} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))) (CategoryTheory.Category.toCategoryStruct.{u3, u3} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))) (CategoryTheory.Category.opposite.{u3, u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (Preorder.smallCategory.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (PartialOrder.toPreorder.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (CompleteSemilatticeInf.toPartialOrder.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (CompleteLattice.toCompleteSemilatticeInf.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))))))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u3, u1} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))) (CategoryTheory.Category.opposite.{u3, u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (Preorder.smallCategory.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (PartialOrder.toPreorder.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (CompleteSemilatticeInf.toPartialOrder.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (CompleteLattice.toCompleteSemilatticeInf.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))))))) C _inst_1 F) (Opposite.op.{succ u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (Bot.bot.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (CompleteLattice.toBot.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))))))) -> (TopCat.Presheaf.IsSheaf.{u3, u2, u1} C _inst_1 X F))
+<too large>
Case conversion may be inaccurate. Consider using '#align Top.presheaf.is_sheaf_of_is_terminal_of_indiscrete TopCat.Presheaf.isSheaf_of_isTerminal_of_indiscreteₓ'. -/
theorem isSheaf_of_isTerminal_of_indiscrete {X : TopCat.{w}} (hind : X.str = ⊤) (F : Presheaf C X)
(it : IsTerminal <| F.obj <| op ⊥) : F.IsSheaf := fun c U s hs =>
@@ -56,10 +53,7 @@ theorem isSheaf_of_isTerminal_of_indiscrete {X : TopCat.{w}} (hind : X.str = ⊤
#align Top.presheaf.is_sheaf_of_is_terminal_of_indiscrete TopCat.Presheaf.isSheaf_of_isTerminal_of_indiscrete
/- warning: Top.presheaf.is_sheaf_iff_is_terminal_of_indiscrete -> TopCat.Presheaf.isSheaf_iff_isTerminal_of_indiscrete is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {X : TopCat.{u3}}, (Eq.{succ u3} (autoParamₓ.{succ u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 95 (OfNat.mk.{0} Nat 95 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 101 (OfNat.mk.{0} Nat 101 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous))) (CategoryTheory.Bundled.str.{u3, u3} TopologicalSpace.{u3} X) (Top.top.{u3} (autoParamₓ.{succ u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 95 (OfNat.mk.{0} Nat 95 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 101 (OfNat.mk.{0} Nat 101 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous))) (CompleteLattice.toHasTop.{u3} (autoParamₓ.{succ u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 95 (OfNat.mk.{0} Nat 95 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 101 (OfNat.mk.{0} Nat 101 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous))) (TopologicalSpace.completeLattice.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X))))) -> (forall (F : TopCat.Presheaf.{u3, u2, u1} C _inst_1 X), Iff (TopCat.Presheaf.IsSheaf.{u3, u2, u1} C _inst_1 X F) (Nonempty.{max 1 (succ u1) (succ u2)} (CategoryTheory.Limits.IsTerminal.{u2, u1} C _inst_1 (CategoryTheory.Functor.obj.{u3, u2, u3, u1} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X))) (CategoryTheory.Category.opposite.{u3, u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (Preorder.smallCategory.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (PartialOrder.toPreorder.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (SetLike.partialOrder.{u3, u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopologicalSpace.Opens.setLike.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)))))) C _inst_1 F (Opposite.op.{succ u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (Bot.bot.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (CompleteLattice.toHasBot.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (TopologicalSpace.Opens.completeLattice.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)))))))))
-but is expected to have type
- forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {X : TopCat.{u3}}, (Eq.{succ u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (CategoryTheory.Bundled.str.{u3, u3} TopologicalSpace.{u3} X) (Top.top.{u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (CompleteLattice.toTop.{u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X))))) -> (forall (F : TopCat.Presheaf.{u3, u2, u1} C _inst_1 X), Iff (TopCat.Presheaf.IsSheaf.{u3, u2, u1} C _inst_1 X F) (Nonempty.{max (succ u1) (succ u2)} (CategoryTheory.Limits.IsTerminal.{u2, u1} C _inst_1 (Prefunctor.obj.{succ u3, succ u2, u3, u1} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))) (CategoryTheory.CategoryStruct.toQuiver.{u3, u3} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))) (CategoryTheory.Category.toCategoryStruct.{u3, u3} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))) (CategoryTheory.Category.opposite.{u3, u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (Preorder.smallCategory.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (PartialOrder.toPreorder.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (CompleteSemilatticeInf.toPartialOrder.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (CompleteLattice.toCompleteSemilatticeInf.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))))))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u3, u1} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))) (CategoryTheory.Category.opposite.{u3, u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (Preorder.smallCategory.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (PartialOrder.toPreorder.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (CompleteSemilatticeInf.toPartialOrder.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (CompleteLattice.toCompleteSemilatticeInf.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))))))) C _inst_1 F) (Opposite.op.{succ u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (Bot.bot.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (CompleteLattice.toBot.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align Top.presheaf.is_sheaf_iff_is_terminal_of_indiscrete TopCat.Presheaf.isSheaf_iff_isTerminal_of_indiscreteₓ'. -/
theorem isSheaf_iff_isTerminal_of_indiscrete {X : TopCat.{w}} (hind : X.str = ⊤)
(F : Presheaf C X) : F.IsSheaf ↔ Nonempty (IsTerminal <| F.obj <| op ⊥) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jujian Zhang
! This file was ported from Lean 3 source module topology.sheaves.punit
-! leanprover-community/mathlib commit d39590fc8728fbf6743249802486f8c91ffe07bc
+! leanprover-community/mathlib commit 38df578a6450a8c5142b3727e3ae894c2300cae0
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -13,6 +13,9 @@ import Mathbin.Topology.Sheaves.SheafCondition.Sites
/-!
# Presheaves on punit
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
Presheaves on punit satisfy sheaf condition iff its value at empty set is a terminal object.
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -25,6 +25,12 @@ open CategoryTheory CategoryTheory.Limits TopCat Opposite
variable {C : Type u} [Category.{v} C]
+/- warning: Top.presheaf.is_sheaf_of_is_terminal_of_indiscrete -> TopCat.Presheaf.isSheaf_of_isTerminal_of_indiscrete is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {X : TopCat.{u3}}, (Eq.{succ u3} (autoParamₓ.{succ u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 95 (OfNat.mk.{0} Nat 95 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 101 (OfNat.mk.{0} Nat 101 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous))) (CategoryTheory.Bundled.str.{u3, u3} TopologicalSpace.{u3} X) (Top.top.{u3} (autoParamₓ.{succ u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 95 (OfNat.mk.{0} Nat 95 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 101 (OfNat.mk.{0} Nat 101 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous))) (CompleteLattice.toHasTop.{u3} (autoParamₓ.{succ u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 95 (OfNat.mk.{0} Nat 95 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 101 (OfNat.mk.{0} Nat 101 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous))) (TopologicalSpace.completeLattice.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X))))) -> (forall (F : TopCat.Presheaf.{u3, u2, u1} C _inst_1 X), (CategoryTheory.Limits.IsTerminal.{u2, u1} C _inst_1 (CategoryTheory.Functor.obj.{u3, u2, u3, u1} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X))) (CategoryTheory.Category.opposite.{u3, u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (Preorder.smallCategory.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (PartialOrder.toPreorder.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (SetLike.partialOrder.{u3, u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopologicalSpace.Opens.setLike.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)))))) C _inst_1 F (Opposite.op.{succ u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (Bot.bot.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (CompleteLattice.toHasBot.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (TopologicalSpace.Opens.completeLattice.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X))))))) -> (TopCat.Presheaf.IsSheaf.{u3, u2, u1} C _inst_1 X F))
+but is expected to have type
+ forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {X : TopCat.{u3}}, (Eq.{succ u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (CategoryTheory.Bundled.str.{u3, u3} TopologicalSpace.{u3} X) (Top.top.{u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (CompleteLattice.toTop.{u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X))))) -> (forall (F : TopCat.Presheaf.{u3, u2, u1} C _inst_1 X), (CategoryTheory.Limits.IsTerminal.{u2, u1} C _inst_1 (Prefunctor.obj.{succ u3, succ u2, u3, u1} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))) (CategoryTheory.CategoryStruct.toQuiver.{u3, u3} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))) (CategoryTheory.Category.toCategoryStruct.{u3, u3} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))) (CategoryTheory.Category.opposite.{u3, u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (Preorder.smallCategory.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (PartialOrder.toPreorder.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (CompleteSemilatticeInf.toPartialOrder.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (CompleteLattice.toCompleteSemilatticeInf.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))))))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u3, u1} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))) (CategoryTheory.Category.opposite.{u3, u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (Preorder.smallCategory.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (PartialOrder.toPreorder.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (CompleteSemilatticeInf.toPartialOrder.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (CompleteLattice.toCompleteSemilatticeInf.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))))))) C _inst_1 F) (Opposite.op.{succ u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (Bot.bot.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (CompleteLattice.toBot.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))))))) -> (TopCat.Presheaf.IsSheaf.{u3, u2, u1} C _inst_1 X F))
+Case conversion may be inaccurate. Consider using '#align Top.presheaf.is_sheaf_of_is_terminal_of_indiscrete TopCat.Presheaf.isSheaf_of_isTerminal_of_indiscreteₓ'. -/
theorem isSheaf_of_isTerminal_of_indiscrete {X : TopCat.{w}} (hind : X.str = ⊤) (F : Presheaf C X)
(it : IsTerminal <| F.obj <| op ⊥) : F.IsSheaf := fun c U s hs =>
by
@@ -46,17 +52,35 @@ theorem isSheaf_of_isTerminal_of_indiscrete {X : TopCat.{w}} (hind : X.str = ⊤
· convert hf
#align Top.presheaf.is_sheaf_of_is_terminal_of_indiscrete TopCat.Presheaf.isSheaf_of_isTerminal_of_indiscrete
+/- warning: Top.presheaf.is_sheaf_iff_is_terminal_of_indiscrete -> TopCat.Presheaf.isSheaf_iff_isTerminal_of_indiscrete is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {X : TopCat.{u3}}, (Eq.{succ u3} (autoParamₓ.{succ u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 95 (OfNat.mk.{0} Nat 95 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 101 (OfNat.mk.{0} Nat 101 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous))) (CategoryTheory.Bundled.str.{u3, u3} TopologicalSpace.{u3} X) (Top.top.{u3} (autoParamₓ.{succ u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 95 (OfNat.mk.{0} Nat 95 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 101 (OfNat.mk.{0} Nat 101 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous))) (CompleteLattice.toHasTop.{u3} (autoParamₓ.{succ u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 112 (OfNat.mk.{0} Nat 112 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 95 (OfNat.mk.{0} Nat 95 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 110 (OfNat.mk.{0} Nat 110 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 101 (OfNat.mk.{0} Nat 101 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 97 (OfNat.mk.{0} Nat 97 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 116 (OfNat.mk.{0} Nat 116 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 99 (OfNat.mk.{0} Nat 99 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous))) (TopologicalSpace.completeLattice.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X))))) -> (forall (F : TopCat.Presheaf.{u3, u2, u1} C _inst_1 X), Iff (TopCat.Presheaf.IsSheaf.{u3, u2, u1} C _inst_1 X F) (Nonempty.{max 1 (succ u1) (succ u2)} (CategoryTheory.Limits.IsTerminal.{u2, u1} C _inst_1 (CategoryTheory.Functor.obj.{u3, u2, u3, u1} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X))) (CategoryTheory.Category.opposite.{u3, u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (Preorder.smallCategory.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (PartialOrder.toPreorder.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (SetLike.partialOrder.{u3, u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopologicalSpace.Opens.setLike.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)))))) C _inst_1 F (Opposite.op.{succ u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (Bot.bot.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (CompleteLattice.toHasBot.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)) (TopologicalSpace.Opens.completeLattice.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} X) (TopCat.topologicalSpace.{u3} X)))))))))
+but is expected to have type
+ forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {X : TopCat.{u3}}, (Eq.{succ u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (CategoryTheory.Bundled.str.{u3, u3} TopologicalSpace.{u3} X) (Top.top.{u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (CompleteLattice.toTop.{u3} (TopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X)) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X))))) -> (forall (F : TopCat.Presheaf.{u3, u2, u1} C _inst_1 X), Iff (TopCat.Presheaf.IsSheaf.{u3, u2, u1} C _inst_1 X F) (Nonempty.{max (succ u1) (succ u2)} (CategoryTheory.Limits.IsTerminal.{u2, u1} C _inst_1 (Prefunctor.obj.{succ u3, succ u2, u3, u1} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))) (CategoryTheory.CategoryStruct.toQuiver.{u3, u3} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))) (CategoryTheory.Category.toCategoryStruct.{u3, u3} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))) (CategoryTheory.Category.opposite.{u3, u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (Preorder.smallCategory.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (PartialOrder.toPreorder.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (CompleteSemilatticeInf.toPartialOrder.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (CompleteLattice.toCompleteSemilatticeInf.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))))))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u3, u1} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))) (CategoryTheory.Category.opposite.{u3, u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (Preorder.smallCategory.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (PartialOrder.toPreorder.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (CompleteSemilatticeInf.toPartialOrder.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (CompleteLattice.toCompleteSemilatticeInf.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X))))))) C _inst_1 F) (Opposite.op.{succ u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (Bot.bot.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (CompleteLattice.toBot.{u3} (TopologicalSpace.Opens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u3} (CategoryTheory.Bundled.α.{u3, u3} TopologicalSpace.{u3} X) (TopCat.topologicalSpace_coe.{u3} X)))))))))
+Case conversion may be inaccurate. Consider using '#align Top.presheaf.is_sheaf_iff_is_terminal_of_indiscrete TopCat.Presheaf.isSheaf_iff_isTerminal_of_indiscreteₓ'. -/
theorem isSheaf_iff_isTerminal_of_indiscrete {X : TopCat.{w}} (hind : X.str = ⊤)
(F : Presheaf C X) : F.IsSheaf ↔ Nonempty (IsTerminal <| F.obj <| op ⊥) :=
⟨fun h => ⟨Sheaf.isTerminalOfEmpty ⟨F, h⟩⟩, fun ⟨it⟩ =>
isSheaf_of_isTerminal_of_indiscrete hind F it⟩
#align Top.presheaf.is_sheaf_iff_is_terminal_of_indiscrete TopCat.Presheaf.isSheaf_iff_isTerminal_of_indiscrete
+/- warning: Top.presheaf.is_sheaf_on_punit_of_is_terminal -> TopCat.Presheaf.isSheaf_on_pUnit_of_isTerminal is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (F : TopCat.Presheaf.{u3, u2, u1} C _inst_1 (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})), (CategoryTheory.Limits.IsTerminal.{u2, u1} C _inst_1 (CategoryTheory.Functor.obj.{u3, u2, u3, u1} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})))) (CategoryTheory.Category.opposite.{u3, u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (Preorder.smallCategory.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (PartialOrder.toPreorder.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (SetLike.partialOrder.{u3, u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopologicalSpace.Opens.setLike.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))))))) C _inst_1 F (Opposite.op.{succ u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (Bot.bot.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (CompleteLattice.toHasBot.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (TopologicalSpace.Opens.completeLattice.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})))))))) -> (TopCat.Presheaf.IsSheaf.{u3, u2, u1} C _inst_1 (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}) F)
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u2} C] (F : TopCat.Presheaf.{u1, u3, u2} C _inst_1 (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})), (CategoryTheory.Limits.IsTerminal.{u3, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u3, u1, u2} (Opposite.{succ u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (Opposite.{succ u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (Opposite.{succ u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))) (CategoryTheory.Category.opposite.{u1, u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (Preorder.smallCategory.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (PartialOrder.toPreorder.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (CompleteSemilatticeInf.toPartialOrder.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))))))))) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} C (CategoryTheory.Category.toCategoryStruct.{u3, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u1, u2} (Opposite.{succ u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))) (CategoryTheory.Category.opposite.{u1, u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (Preorder.smallCategory.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (PartialOrder.toPreorder.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (CompleteSemilatticeInf.toPartialOrder.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))))))) C _inst_1 F) (Opposite.op.{succ u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (Bot.bot.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (CompleteLattice.toBot.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))))))) -> (TopCat.Presheaf.IsSheaf.{u1, u3, u2} C _inst_1 (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}) F)
+Case conversion may be inaccurate. Consider using '#align Top.presheaf.is_sheaf_on_punit_of_is_terminal TopCat.Presheaf.isSheaf_on_pUnit_of_isTerminalₓ'. -/
theorem isSheaf_on_pUnit_of_isTerminal (F : Presheaf C (TopCat.of PUnit))
(it : IsTerminal <| F.obj <| op ⊥) : F.IsSheaf :=
isSheaf_of_isTerminal_of_indiscrete (@Subsingleton.elim (TopologicalSpace PUnit) _ _ _) F it
#align Top.presheaf.is_sheaf_on_punit_of_is_terminal TopCat.Presheaf.isSheaf_on_pUnit_of_isTerminal
+/- warning: Top.presheaf.is_sheaf_on_punit_iff_is_terminal -> TopCat.Presheaf.isSheaf_on_pUnit_iff_isTerminal is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (F : TopCat.Presheaf.{u3, u2, u1} C _inst_1 (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})), Iff (TopCat.Presheaf.IsSheaf.{u3, u2, u1} C _inst_1 (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}) F) (Nonempty.{max 1 (succ u1) (succ u2)} (CategoryTheory.Limits.IsTerminal.{u2, u1} C _inst_1 (CategoryTheory.Functor.obj.{u3, u2, u3, u1} (Opposite.{succ u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})))) (CategoryTheory.Category.opposite.{u3, u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (Preorder.smallCategory.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (PartialOrder.toPreorder.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (SetLike.partialOrder.{u3, u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopologicalSpace.Opens.setLike.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))))))) C _inst_1 F (Opposite.op.{succ u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (Bot.bot.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (CompleteLattice.toHasBot.{u3} (TopologicalSpace.Opens.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3}))) (TopologicalSpace.Opens.completeLattice.{u3} (coeSort.{succ (succ u3), succ (succ u3)} TopCat.{u3} Type.{u3} TopCat.hasCoeToSort.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})) (TopCat.topologicalSpace.{u3} (TopCat.of.{u3} PUnit.{succ u3} PUnit.topologicalSpace.{u3})))))))))
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u2} C] (F : TopCat.Presheaf.{u1, u3, u2} C _inst_1 (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})), Iff (TopCat.Presheaf.IsSheaf.{u1, u3, u2} C _inst_1 (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}) F) (Nonempty.{max (succ u2) (succ u3)} (CategoryTheory.Limits.IsTerminal.{u3, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u3, u1, u2} (Opposite.{succ u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (Opposite.{succ u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (Opposite.{succ u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))) (CategoryTheory.Category.opposite.{u1, u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (Preorder.smallCategory.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (PartialOrder.toPreorder.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (CompleteSemilatticeInf.toPartialOrder.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))))))))) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} C (CategoryTheory.Category.toCategoryStruct.{u3, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u1, u2} (Opposite.{succ u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))) (CategoryTheory.Category.opposite.{u1, u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (Preorder.smallCategory.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (PartialOrder.toPreorder.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (CompleteSemilatticeInf.toPartialOrder.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))))))) C _inst_1 F) (Opposite.op.{succ u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (Bot.bot.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (CompleteLattice.toBot.{u1} (TopologicalSpace.Opens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1}))) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})) (TopCat.topologicalSpace_coe.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})))))))))
+Case conversion may be inaccurate. Consider using '#align Top.presheaf.is_sheaf_on_punit_iff_is_terminal TopCat.Presheaf.isSheaf_on_pUnit_iff_isTerminalₓ'. -/
theorem isSheaf_on_pUnit_iff_isTerminal (F : Presheaf C (TopCat.of PUnit)) :
F.IsSheaf ↔ Nonempty (IsTerminal <| F.obj <| op ⊥) :=
⟨fun h => ⟨Sheaf.isTerminalOfEmpty ⟨F, h⟩⟩, fun ⟨it⟩ => isSheaf_on_pUnit_of_isTerminal F it⟩
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -49,14 +49,14 @@ theorem isSheaf_iff_isTerminal_of_indiscrete {X : TopCat.{w}} (hind : X.str =
isSheaf_of_isTerminal_of_indiscrete hind F it⟩
#align Top.presheaf.is_sheaf_iff_is_terminal_of_indiscrete TopCat.Presheaf.isSheaf_iff_isTerminal_of_indiscrete
-theorem isSheaf_on_pUnit_of_isTerminal (F : Presheaf C (TopCat.of PUnit))
+theorem isSheaf_on_punit_of_isTerminal (F : Presheaf C (TopCat.of PUnit))
(it : IsTerminal <| F.obj <| op ⊥) : F.IsSheaf :=
isSheaf_of_isTerminal_of_indiscrete (@Subsingleton.elim (TopologicalSpace PUnit) _ _ _) F it
-#align Top.presheaf.is_sheaf_on_punit_of_is_terminal TopCat.Presheaf.isSheaf_on_pUnit_of_isTerminal
+#align Top.presheaf.is_sheaf_on_punit_of_is_terminal TopCat.Presheaf.isSheaf_on_punit_of_isTerminal
-theorem isSheaf_on_pUnit_iff_isTerminal (F : Presheaf C (TopCat.of PUnit)) :
+theorem isSheaf_on_punit_iff_isTerminal (F : Presheaf C (TopCat.of PUnit)) :
F.IsSheaf ↔ Nonempty (IsTerminal <| F.obj <| op ⊥) :=
- ⟨fun h => ⟨Sheaf.isTerminalOfEmpty ⟨F, h⟩⟩, fun ⟨it⟩ => isSheaf_on_pUnit_of_isTerminal F it⟩
-#align Top.presheaf.is_sheaf_on_punit_iff_is_terminal TopCat.Presheaf.isSheaf_on_pUnit_iff_isTerminal
+ ⟨fun h => ⟨Sheaf.isTerminalOfEmpty ⟨F, h⟩⟩, fun ⟨it⟩ => isSheaf_on_punit_of_isTerminal F it⟩
+#align Top.presheaf.is_sheaf_on_punit_iff_is_terminal TopCat.Presheaf.isSheaf_on_punit_iff_isTerminal
end TopCat.Presheaf
@@ -2,14 +2,11 @@
Copyright (c) 2022 Jujian Zhang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jujian Zhang
-
-! This file was ported from Lean 3 source module topology.sheaves.punit
-! leanprover-community/mathlib commit d39590fc8728fbf6743249802486f8c91ffe07bc
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Topology.Sheaves.SheafCondition.Sites
+#align_import topology.sheaves.punit from "leanprover-community/mathlib"@"d39590fc8728fbf6743249802486f8c91ffe07bc"
+
/-!
# Presheaves on `PUnit`
The unported dependencies are