Zulip Chat Archive

Stream: new members

Topic: Inverse order `nonempty_sections_of_fintype_inverse_system`


Rémi Bottinelli (Sep 03 2022 at 06:16):

Hi,

I want to use nonempty_sections_of_fintype_inverse_system but drop the opposite part.
I've tried the following, but get an error on the line have F'sections_nempty : F'.sections.nonempty := nonempty_sections_of_fintype_inverse_system F',.

import category_theory.filtered
import topology.category.Top.limits
import category_theory.category.basic
import category_theory.full_subcategory
import data.opposite


universes u v w

open classical
open category_theory

noncomputable theory
local attribute [instance] prop_decidable



variables {J : Type u} [preorder J] [is_directed J ge] (F : J  Type v)


instance Joppreo : preorder Jᵒᵖ := {
  le := λ jop jop', jop'.unop  jop.unop,
  lt := λ jop jop', jop'.unop < jop.unop,
  le_refl := λ jop, preorder.le_refl jop.unop,
  le_trans := λ j₁ j₂ j₃, λ h₁₂ h₂₃, preorder.le_trans _ _ _ h₂₃ h₁₂,
  lt_iff_le_not_le := λ j₁ j₂, preorder.lt_iff_le_not_le j₂.unop j₁.unop
  }

instance Jopdir  : is_directed Jᵒᵖ () :=
{ directed := λ jop jop', by
  { obtain c,cj,cj' := directed_of (ge) jop.unop jop'.unop,
    use opposite.op c, rw opposite.unop_op c at cj cj',
    exact cj,cj'⟩,}}


theorem nonempty_sections_of_fintype_inverse_system'
 [fin : Π (j : J), fintype (F.obj j)] [nempty :  (j : J), nonempty (F.obj j)] : F.sections.nonempty :=
begin
  let F' : (Jᵒᵖ)ᵒᵖ  Type v := (category_theory.op_op J).comp F,
  haveI fin' : Π j : (Jᵒᵖ)ᵒᵖ, fintype (F'.obj j) := λ jopop, by {apply fin,},
  haveI nempty' :  j : (Jᵒᵖ)ᵒᵖ, nonempty (F'.obj j) := λ jopop, by {apply nempty,},
  have F'sections_nempty : F'.sections.nonempty := nonempty_sections_of_fintype_inverse_system F',
  obtain s,sec := F'sections_nempty,
  fapply Exists.intro,
  exact λ j, s (opposite.op $ opposite.op j),
  exact λ j j' f, @sec (opposite.op $ opposite.op j)(opposite.op $ opposite.op j') (f.op.op),
end

After some investigation, I get a more useful error message:

type mismatch at application
  nonempty_sections_of_fintype_inverse_system F'
term
  F'
has type
  @category_theory.functor (opposite (opposite J))
    (@category_theory.category.opposite (opposite J)
       (@category_theory.category.opposite J (@preorder.small_category J _inst_1)))
    (Type v)
    category_theory.types
but is expected to have type
  @category_theory.functor (opposite (opposite J))
    (@category_theory.category.opposite (opposite J)
       (@preorder.small_category (opposite J) (@inverse_system.Joppreo J _inst_1 _inst_2)))
    (Type v)
    category_theory.types

I believe this is due to having a few different ways to do different constructions, but am not sure exactly where the problem lies, nor how to solve it.
Any idea? Thanks!


Last updated: Dec 20 2023 at 11:08 UTC