Zulip Chat Archive
Stream: general
Topic: Hard but obvious lemma
Chris Hughes (Jun 22 2018 at 23:10):
How to prove this? I don't need it, I'm just curious.
example {α β : Sort u} {γ : α → Sort v} {δ : β → Sort v} {f : Π a, γ a} {g : Π b, δ b} {a : α} {b : β} (hfg : f == g) (hab : a == b) : f a == g b :=
Simon Hudon (Jun 22 2018 at 23:14):
I think there’s a meta theorem that says it can’t be proved in DTT
Simon Hudon (Jun 22 2018 at 23:14):
@Mario Carneiro
Chris Hughes (Jun 22 2018 at 23:18):
In that case, same question for
example {α β : Sort u} {γ δ : Sort v} {f : α → γ} {g : β → δ} {a : α} {b : β} (hfg : f == g) (hab : a == b) : f a == g b
Simon Hudon (Jun 22 2018 at 23:28):
I think you would need an equality α = β
and γ = δ
for this to be provable. Then, you can deduce f = g
. I saw the theorem in a talk by Cody Roux. If I remember correctly, when you want to prove f x₀ .. xᵢ = g y₀ .. yᵢ
, from x₀ == y₀
.. xᵢ == yᵢ
, you need f = g
for the statement to be provable.
Mario Carneiro (Jun 23 2018 at 02:48):
Leo has a whole paper on how he works around the unprovability of this theorem
Mario Carneiro (Jun 23 2018 at 02:48):
(co-authored with Cody IIRC)
Mario Carneiro (Jun 23 2018 at 02:50):
Although I think the actual unprovability is only folklore, I don't know an explicit proof although there is probably a way to modify the set model to get it
Simon Hudon (Jun 23 2018 at 02:50):
He basically generates all the relevant theorems right? I think that's what congr
does for heq
goals
Mario Carneiro (Jun 23 2018 at 02:51):
yes, he's implemented a tactic meta-theorem for the version you stated
Last updated: Dec 20 2023 at 11:08 UTC