Zulip Chat Archive

Stream: new members

Topic: Why is PProd never in Prop?


Timo Carlin-Burns (Feb 12 2024 at 07:20):

Why does docs#PProd have sort Sort (max (max u 1) v) instead of Sort (max u v)? It seems like PProd.{0, 0} could be equivalent to And without causing any inconsistency.

variable (P Q : Prop)

#check PProd P Q -- Type
#check P  Q -- Prop

Eric Wieser (Feb 12 2024 at 08:11):

Note that if you write

structure PPProd (α : Sort u) (β : Sort v) : Sort (max u v) where
  fst : α
  snd : β

you get the error

invalid universe polymorphic type, the resultant universe is not Prop (i.e., 0), but it may be Prop for some parameter values (solution: use 'u+1' or 'max 1 u'
  max u v

Eric Wieser (Feb 12 2024 at 08:12):

(lean 3 gives the same error)

Eric Wieser (Feb 12 2024 at 08:16):

I was hoping this would work, but it doesn't (filed as lean4#3310):

set_option bootstrap.inductiveCheckResultingUniverse false in
structure PPProd.{u,v} (α : Sort u) (β : Sort v) : Sort (max u v) where
  fst : α
  snd : β

Last updated: May 02 2025 at 03:31 UTC